instalando pacotes sem acesso ao sudo

11

Existe uma maneira fácil de instalar pacotes com uma grande árvore de dependência, desde que você não tenha acesso de superusuário? Por exemplo, digamos que eu queria instalar o Firefox. O Firefox possui várias dependências, cada uma com suas próprias dependências, etc.

Existe uma opção que eu possa dar ao apt-get para instalá-lo em um diretório pessoal? Ou existe uma maneira de hackear para fazer todo o trabalho pesado para mim?


fonte
tente perguntar sobre www.superuser.com ou se uma pergunta servidor especificamente www.serverfault.com

Respostas:

4

Você pode instalar arquivos .deb individuais no diretório inicial com:

dpkg-deb -x /path/to/some.deb $HOME

Mas isso não cuida das dependências como o aptitude ou o apt-get.

Egon Willighagen
fonte
Eu usei esse método para instalar o atom for julia na minha estação de trabalho. Além disso, criei um alias para atom em ~ / .bashrc: alias atom = "/ caminho / para / o / executável / atom / binário / arquivo". Em seguida, execute: source ~ / .bashrc, você está pronto para executar o atom no terminal.
Boa vontade
2

Confira NixOs ( LWN ). Os pacotes são isolados (às vezes a distribuição precisa corrigi-los) e podem ser instalados várias vezes, em versões diferentes ou por usuários diferentes.

O jhbuild pode automatizar um grande processo cmmi. Mas alguém precisa escrever um conjunto de módulos (um gráfico de dependência).

Se você estiver seguindo o processo de configuração / instalação manual, é possível usar o stow para simplificar a instalação de itens em sua casa. O armazenamento é útil para instalar coisas em vários prefixos, mas use apenas um prefixo para a resolução de dependências.

O dpkg pode ser coagido a instalar em um prefixo diferente com instdir / admindir / root, mas isso é útil apenas para ambientes chroot.

Tobu
fonte
0

Não compile o Firefox a partir da fonte, apenas instale um pacote binário no diretório inicial.

Este artigo da Mozilla KnowledgeBase explica como fazê-lo. Basicamente, você precisa apenas extrair um tarball e executar um firefoxarquivo nele; todas as dependências já estão incluídas, assim você não precisa instalar nada apt.

EDIT: Não, não existe um método genérico, pelo menos porque a maioria dos aplicativos (e principalmente os da GUI) exige que muitos dos dados associados sejam colocados em locais conhecidos como / usr / share, e são codificados permanentemente (bem, ele pode ser configurado em tempo de compilação, mas você não deseja recompilar tudo como disse em questão). Assim, você pode apenas verificar se há pacotes binários pré-compilados que pesquisam recursos no diretório de inicialização e não no sistema.

whitequark
fonte
interpreto a questão sobre práticas de gerenciamento de pacotes. Eu suspeito que o Firefox é apenas um exemplo, então métodos específicos do Firefox não são muito úteis.
quack quixote
Obrigado, editou a postagem. As informações do Firefox ainda são úteis.
whitequark
0

Eu acho que a resposta é praticamente "não". Primeiro, o banco de dados do pacote só pode ser acessado pelo root e, em segundo lugar, alguns / muitos pacotes possuem caminhos codificados que tornam impossível realocá-los. Usar um chroot seria uma resposta possível, mas você também precisa de raiz para isso, ou pelo menos alguém com raiz para conceder direitos limitados.

Peter Eisentraut
fonte
0

Eu acredito que você tem que fazer um chroot, então você pode instalar seus pacotes lá.

ref: https://help.ubuntu.com/6.10/ubuntu/packagingguide/C/appendix-chroot.html https://wiki.ubuntu.com/DebootstrapChroot

rogerdpack
fonte
privilégios de root são de qualquer maneira necessário para criar um chroot, então por que não basta instalar pacotes em vez ? Além disso, as chances de seu sysadmin lhe conceder privilégios de root completos (ou mesmo relacionados ao apt) são muito, muito menores que as do chroot. É (quase) não perigoso para o sistema host.
24510