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.