Instalando um pacote .deb no diretório inicial

31

É possível instalar um .debpacote completamente no meu diretório home no debian?

free_easy
fonte
Você pode criar um pacote deb que é instalado em qualquer lugar. Mas por que você iria querer? Os pacotes devem estar instalados no sistema.
Faheem Mitha
5
@ Faaem Mitha - Nem todos temos acesso root às nossas caixas Unix, você sabe, eu certamente não tenho onde trabalho. Se precisarmos de um pacote (RPM no meu caso) para usar algum software, seria bom se pudéssemos instalá-lo no espaço do usuário em vez de precisar falar com a TI e pedir que instalassem o pacote no sistema para nós.
22611 Mark Booth
@FaheemMitha Outra coisa é testar uma nova versão de um pacote. Se eu quiser disponibilizar um pacote específico apenas para um usuário, não o instalarei em todo o sistema.
Erathiel 21/08/2015
@ Erathiel Bem, esse é realmente um caso de uso para uma máquina virtual.
Faheem Mitha
@FaheemMitha Talvez ou talvez não;) Meu caso de uso foi uma máquina de desenvolvimento com vários usuários servindo como ambientes de desenvolvimento. Eu precisava enviar um pacote para uma nova versão apenas para um usuário específico, para que pudéssemos testar como a nova versão se comporta. Mas o servidor é uma máquina virtual propriamente dita; portanto, você está parcialmente certo;)
Erathiel

Respostas:

19

Depende do que você quer dizer com "instalar". É possível extrair o conteúdo de um arquivo .deb usando dpkg-deb -x <filename.deb>, mas se você pode realmente usar o software depois de extraí-lo localmente depende de como ele foi gravado. Muitos softwares Linux esperam encontrar seus arquivos de recursos em locais padrão especificados em tempo de compilação, como /usr/shareou /usr/lib, que falharão se o software não estiver instalado no local usual. Além disso, quaisquer arquivos de configuração de todo o sistema instalados pelo pacote, como .desktoparquivos que criam entradas no menu Iniciar, não funcionarão como planejado se instalados no local errado.


fonte
3
deve serdpkg-deb -x app.deb /path/to/target/dir/
qed 10/05
ou apenas dpkg -x app.deb / path / to / target / dir /
Erik Aronesty
5

Obrigado por todos os seus comentários e respostas. Era um software auto-empacotado onde gostaria de fazer algumas verificações básicas se minha embalagem estava correta. Sou root no meu computador, mas não gostaria de fazer uma instalação real por lá nem quero usar uma imagem virtual no momento. Eu vim com esta solução: https://serverfault.com/questions/23734/is-there-any-way-to-get-apt-to-install-packages-to-my-home-directory Que funciona perfeitamente para eu atm.

free_easy
fonte
5
@Ivogel pergunta "A página à qual você vinculou tem muitas postagens, e não sei dizer qual é a solução que funcionou para você. Você poderia especificar?"
DRS
4

Note que o uso do sistema de pacotes Debian requer acesso root. Portanto, a instalação de um pacote deb no diretório inicial do usuário requer acesso root. Se você tiver acesso root, faz mais sentido apenas instalar no sistema normalmente.

Se você não tem acesso root, não pode usar o sistema de empacotamento Debian. Você certamente pode descompactar um arquivo deb em seus componentes e colá-lo em seu diretório pessoal, mas fazer isso faria pouco sentido. Eu sugiro que você vá com uma instalação local. Dependendo do software que você está instalando, o software pode ter algum tipo de sistema interno de gerenciamento de pacotes que você pode usar.

Faheem Mitha
fonte
Não sei se foi adicionado depois que esta resposta foi criada, mas o dpkg tem uma opção --force-non-root que pode ser usada para contornar isso.
Bruce Adams
@BruceAdams Não vejo essa opção listada na página de manual. Você pode fornecer uma referência?
FaHemem Mitha #
Se você executar o dpkg --help, ele menciona --force-thing. Se você executar o dpkg --force-help, ele fornecerá mais detalhes. Veja, por exemplo, askubuntu.com/questions/193695/…
Bruce Adams
@BruceAdams Ok, eu vejo isso, mas não tenho idéia de como isso funcionaria: not-root Try to (de)install things even when not root.
Faheem Mitha 3/11
Veja minha pergunta stackoverflow.com/questions/47099045/… No entanto, no momento da redação deste documento, ele ainda não tinha uma resposta. Então, eu também não tenho ideia.
11789 Bruce