Na verdade, gdebi
é apenas um front-end para o dpkg
com funcionalidade adicionada que pode verificar pacotes de dependência nos repositórios e pode instalá-los em uma operação, enquanto dpkg -i
requer duas operações manualmente (mais tarde sendo apt-get -f install
).
Pergunta 1:
1) Como o gdebi faz isso? instalar pacotes .deb com Dependências sem usar links PPA do Apt adicionados manualmente nos arquivos de configuração?
Sendo um front-end dpkg
, ele pode usar todas as funcionalidades de dpkg
. Como todo arquivo do pacote .deb
contém (desde que não estejam corrompidos) metadados sobre esse arquivo deb (como nome do pacote, mantenedor, dependências, etc), ele pode facilmente verificar a dependência deste arquivo.
Por exemplo, você pode verificar os metadados de um arquivo .deb usando dpkg --info package-name.deb
E, em seguida, ele usa essas informações para construir o mapa de dependência e marcar os arquivos .deb disponíveis localmente como já baixados e baixar outros arquivos .deb
da Internet.
Observe que os pacotes extras necessários devem estar disponíveis (com a versão apropriada) em pelo menos um dos repositórios, que estão configurados no sistema.
Em seguida, ele continua a gostar de uma instalação normal do apt. A diferença é que ele não faz o download do arquivo .deb principal
Pergunta 2:
(2) Posso usar o mesmo comando gdebi (
sudo su -c gdebi my.deb
) para instalar todos os outros pacotes deb sem adicionar um PPA? ou eu tenho que mudar o formatosudo su -c myn.deb
onde n é a versão do software etc?
Os PPAs existem por um motivo. A principal razão é que eles fornecem versões mais recentes dos pacotes. E esses pacotes versionados geralmente dependem de versões superiores de sub-pacotes, que também são normalmente servidos pelo PPA, e não pelo repositório padrão do Ubuntu.
Exemplo de cenário:
Suponha que um pacote chamado mother-package tenha a versão mais alta de 2.0
nos repositórios Padrão do Ubuntu, e esse pacote-mãe depende de um pacote chamado child-package da versão 2. Suponha também que alguns PPA fornecem mother-package da versão 3.0
que requer em child-package
de 3.0
, ambos disponíveis via esse repositório PPA.
O problema é que, se você baixar mother-package-3.0.deb da página do repositório e tentar instalá-lo com gdebi
, você (ou gdebi
) falhará.
Porque, verificando o arquivo mother-package-3.0.deb , gdebi
sabia que este pacote-mãe precisa filho-pacote da versão 3.0
ou superior, mas só conhece a localização da versão 2.0
. Não sabe onde buscar a versão 3.0
de pacote-infantil . Isto é esperado porque, você não disse ao sistema onde você conseguiu este último pacote-mãe . Em outras palavras, você não configurou a lista de repositórios para incluir esse PPA.
Então, a resposta óbvia desta questão é Depende . Se as dependências necessárias puderem ser encontradas em repositórios já configurados, a instalação será bem sucedida . Mas se não, então ele falhará ao instalar este pacote versionado aprimorado. É por isso que você ainda precisa de PPAs e essa é a maneira mais fácil sem fazer todos esses manualmente.
A segunda parte da segunda pergunta não fazia sentido para mim .