Instalando pacotes no diretório local?

26

Gostaria de instalar pacotes de software, semelhantes a apt-get install <foo> , mas:

  1. Sem sudo e
  2. Em um diretório local

O objetivo deste exercício é isolar compilações independentes em meu servidor integração contínua .

Eu não me importo de compilar a partir da fonte, se é o que é preciso, mas obviamente eu prefiro a abordagem mais simples possível. Eu tentei apt-get source --compile <foo> como mencionado aqui mas não consigo funciona para pacotes como o autoconf. Eu recebo o seguinte erro:

dpkg-checkbuilddeps: Unmet build dependencies: help2man

Eu tenho o help2man compilado em um diretório local, mas não sei como informar o apt-get sobre isso. Alguma idéia?

UPDATE : Eu encontrei uma resposta que quase funciona no link a>. O problema com chroot é que requer sudo. O problema com apt-get source é que não sei como resolver dependências. Devo dizer que chroot parece muito atraente. Existe um comando equivalente que não requer sudo?

    
por Gili 27.09.2012 / 16:19

2 respostas

14

Isto, em geral, não é possível, porque você iria mexer com o sistema de dependências apt.

Existem duas soluções:

  1. Instale o pacote de origem, mude para o diretório de origem, configure e instale o pacote independentemente dos sistemas de empacotamento manualmente para um diretório de sua escolha.

    apt-get source <package>
    

    Isso não precisa de root, baixa a fonte do pacote, descompacta-o em um diretório dentro do diretório atual. Você pode então mudar para esse diretório, fazer modificações na fonte, configurar a instalação para outro destino, etc.

    A configuração para qual diretório de instalação os programas devem ir depende, no entanto, do programa específico. Muitos programas usam o ./configure --prefix localdir para direcionar a instalação para o localdir; mas isso nem sempre é o caso.

  2. Crie um ambiente chroot no qual você instalará os pacotes:

    debootstrap precise myfancyinstall
    

    Agora você criou uma instalação fictícia no diretório myfancyinstall /

    chroot myfancyinstall
    

    Você pode usar o apt-get install dentro do chroot para instalar o que quiser.

por January 27.09.2012 / 16:42
10

usando um shell bash e adquirindo o arquivo "package.deb" (assumindo que o nome do pacote é "pacote") você pode executar o seguinte comando para realizar o que quiser - instalar o pacote para que seu diretório pessoal seja tratado da mesma maneira "/" seria tratado em uma instalação normal.

Este é o comando:

apt-get download package; dpkg -i --force-not-root --root=$HOME package.deb

Você pode enfrentar alguns erros, como $ HOME / var / lib / dpkg / lock está faltando Então, basta criar todos os arquivos que faltam, você receberá os erros e, em seguida, a instalação deve funcionar sem sudo.

observe que, se "apt-get download" não funcionar, você pode tentar "apt download" ou "pacote de download do apitutde".

Se nenhum dos métodos funcionar, você pode simplesmente baixar o pacote manualmente pelo link

outro método seria executar o comando chroot com o parâmetro $ HOME e depois instalar da mesma maneira que acima apenas sem --root = $ HOME. esse comando traria a você um shell onde "/" é seu $ HOME atual. para voltar ao modo normal, não se esqueça de "sair"

boa sorte.

    
por user172681 01.04.2014 / 01:55

Tags