Embora isso não seja tecnicamente uma resposta, foi uma boa pergunta.
Se olharmos para o man dpkg, é isso que diz sobre as opções para testar. Se algum especialista Debian real puder fornecer uma resposta mais autoritária, isso seria bom. Ou edite o meu se tiver erros nele.
--no-act, --dry-run, --simulate
Do everything which is supposed to be done, but don't write any changes. This is used to see what would happen with the specified
action, without actually modifying anything.
Eu acredito, embora eu não esteja certo, que, em essência, tudo que o dpkg está testando é se o comando tem alguma falha nele. Por exemplo, se você fez:
#dpkg --dry-run -i nonexistent.deb || echo $?
dpkg: error: cannot access archive 'nonexistent.deb': No such file or directory
2
esse é o resultado. Uma coisa que eu notei foi que o dpkg requeria root mesmo com --dry-run, queixou-se de não ser capaz de usar o arquivo de log, o que significa que --dry-run
não faz nada do que esperamos. Com apt-get
, você pode usar --simulate como usuário regular.
O dpkg é uma ferramenta apt de nível muito baixo, e como você pode ver pelos seus resultados em seus testes, ele não sabia sobre as árvores de dependência e banco de dados apt até que ele realmente instalasse o arquivo .deb. Então deduzo que dpkg --dry-run
ou --simulate
etc simplesmente estão testando os dados reais do comando literal, não as dependências etc.
O que sugere que, embora pareça ser o mesmo comando que funciona de forma decente, mas não perfeita, no apt-get, na verdade não é o mesmo. Alguém teria que ler o código no dpkg --simulate para ver o que realmente faz.
A pesquisa dessa questão parece confirmar o que acredito ser o caso:
If a feature, is there an automatic way of checking a .deb's dependencies, other than trying to
dpkg -i
it (and ending up with under-configured packages) or doing adpkg -f
and checking the dependencies one by one by hand?What I'm looking for is a something like dpkg-buildpackage's 'Unmet build dependencies: ...' check, but for .debs.
Existe um novo aplicativo disponível chamado "gdebi" em: link
Ele deve ser capaz de resolver dependências do pacote deb diretamente. isto contém gdebi-gtk e gdebi (e versão cli). Isso pode ser o que você quer. Se não, por favor me avise e pode ser adicionado :) Se você use / teste, feedback (via correio privado) é muito apreciado.
Esse é um tópico muito antigo, e tenho certeza de que você não está procurando uma ferramenta de gui, mas é importante notar que o problema existia em 2005 e alguém criou uma solução de gui que verificaria dependências, o que sugere que De fato, o dpkg --simulate não. Nem eu esperaria, eu fiz um monte de scripts automatizados para o Debian apt, e o dpkg, e os dois agem e se comportam de maneira muito diferente.
Várias opções para determinar dependências usando o dpkg
Esse é um antigo tópico do Debian sobre a mesma questão, novamente, você pode ver que o dpkg --dry-run não manipula dependências em geral.
dpkg-deb -I package.deb
É a sugestão lá. Isso mostra basicamente a mesma coisa que apt-cache show package-name
.
Assim, pelo menos, você mesmo pode verificar as dependências.
dpkg -I perl_5.26.0-8_i386.deb
....
Pre-Depends: dpkg (>= 1.17.17)
Depends: perl-base (= 5.26.0-8), perl-modules-5.26 (>= 5.26.0-8), libperl5.26 (= 5.26.0-8)
....
If you use
dpkg --control pkg_file
, then it will show you all of the control information for the package, including dependencies.
Eu testei isso, mas não mostra nada, pode ser obsoleto, não sei.
Como você pode ver, o Debian devs teve várias sugestões, mas nenhuma delas sugeriu que havia uma maneira de fazer com que dpgk --dry-run
fizesse o que você queria.
Conclusão
Você tem algumas opções, uma, determinar as dependências manualmente, e isso certamente se aplicará ao seu caso futuro de criação de seus próprios debs e, em seguida, instalará essas dependências usando uma instalação com script ou o que encontrar. o pacote .deb depois disso.
Usar a vm também é uma boa opção, com snapshots, para testes.