Você pode usar os equivs pacote para criar um pacote fictício para falsificar um determinado pacote que está sendo instalado. Algumas instruções aqui .
Sendo um adotante inicial e usando 11.04 compilações diárias, às vezes encontro uma situação em que alguns pacotes exigem versões anteriores de outros pacotes que não os instalados. Geralmente as versões mais recentes (mas recusadas) dos pacotes necessários fornecem toda a funcionalidade de suas versões mais antigas.
Se eu usar dpkg -i --force-depends-version
para instalar pacotes dependentes, tudo funciona bem, nunca vi um problema.
Em vez de baixar e instalar manualmente cada pacote, posso fazer o sistema fingir que existe uma versão de pacote específica instalada quando há uma versão mais recente? Ou há um equivalente de --force-depends-version
para apt-get
?
Apesar de uma resposta já ter sido aceita, a inclusão do que foi aceito transmite melhor o processo:
Existe um pacote Debian chamado equivs
que é capaz de criar pacotes fictícios. Instale-o executando sudo apt-get install -y equivs
Uma vez instalado, você gera um arquivo de "controle" de modelo usando o seguinte comando: equivs-control postfix
(substitua postfix
pelo nome do seu pacote). No meu caso, posso usar um nome de pacote alternativo, por exemplo postfix-custom
ou qualquer outro, mas que meu pacote personalizado atenda ou Provides
da dependência de instalação de postfix
(novamente substituindo postfix
para qualquer pacote que você desejar.
Depois que o arquivo de controle de modelo é gerado, normalmente removerei muitas das instruções comentadas (instruções que começam com #
). Uma que eu gostaria de manter especificamente é a declaração Provides:
, onde posso dizer que meu pacote oferece a capacidade oferecida pelo outro pacote que estou tentando falsificar, por exemplo, Provides: postfix
informa ao mecanismo de resolução de dependências Debian / Ubuntu que meu pacote - de qualquer nome - fornece os mesmos recursos do pacote de destino, novamente postfix
ou o que for. Isso me permite nomear meu pacote independentemente do pacote de destino para evitar confusão. A Erlang Factory faz isso com suas coisas, por exemplo esl-erlang
fornece erlang
.
Por fim, depois que o arquivo de controle de modelo é criado, você usa equivs-build
para gerar o pacote falso, por exemplo, %código%. Demora alguns segundos para criar o pacote e, em seguida, você pode executar equivs-build /path/to/generated/control/file
Para usuários avançados, se o arquivo de controle do modelo tiver uma linha de dependência sudo dpkg -i my_package_name*.deb
, convém usar uma ferramenta como Requires:
para instalar seu pacote e os vários pacotes declarados como dependências.