Por que não consigo instalar todos os pacotes começando com o padrão 'ruby- *'?

0

Eu corro o comando para instalar tudo sobre o ruby: sudo apt-get install ruby-* .Mas mostra dependências não satisfeitas / pacotes quebrados.

Veja o ScreenShot do terminal aqui

Agora me diga como instalar todos os pacotes que conheceram dependências (satisfeitos).

    
por Chitholian 13.10.2016 / 02:50

1 resposta

6

Quando você tentar instalar usando ruby-* , esse regex será expandido para incluir todos os pacotes que começam com o nome ruby . Mas isso só será bem-sucedido se todos os pacotes que começarem com ruby não entrarem em conflito uns com os outros ou puderem ficar juntos de maneira feliz.

O problema é que alguns pacotes com o nome começando com ruby podem entrar em conflito com alguns outros pacotes correspondidos pelo regex. Por exemplo, quando eu executo aquele comando no meu sistema (Ubuntu 16.04), um dos conflitos foi -

ruby-celluloid-fsm : Breaks: ruby-celluloid (< 0.17~) but 0.16.0-4 is to be installed

Aqui ruby-celluloid-fsm está em conflito com ruby-celluoid . Eu pensei que um deles é mais antigo que o outro e o mais novo substitui o mais antigo e não pode ficar juntos. De fato, este foi o caso quando eu chequei com o comando apt-cache depends ruby-celluloid-fsm . Aqui está a saída

→ apt-cache depends ruby-celluloid-fsm 
ruby-celluloid-fsm
  Depends: bundler
 |Depends: ruby
  Depends: <ruby-interpreter>
    ruby2.0:i386
    ruby2.0
    ruby2.1
    ruby2.2
    jruby
    ruby1.9.1
  Depends: ruby-dotenv
  Depends: ruby-nenv
  Depends: ruby-rspec-logsplit
  Depends: ruby-timers
  Breaks: ruby-celluloid
  Replaces: ruby-celluloid

Você pode ver claramente que o pacote está em conflito com ruby-celluoid , indicado pela linha Breaks: e Replaces: .

Portanto, não instale nada com * regex padrão, pode falhar drasticamente. Você só deve instalar pacotes do que precisa. Lembre-se , nem todos os pacotes no repositório oficial podem ser instalados em um sistema juntos.

    
por Anwar 13.10.2016 / 08:25