Há um servidor no qual trabalho, executando uma versão mais antiga do Linux. Como não tenho acesso root ao sistema, quis criar uma versão mais recente de uma ferramenta que utilizo muito (Vim 7.3). Eu pensei que eu iria compilá-lo e instalá-lo em ~ / bin. No entanto, requer ncurses arquivos de desenvolvimento que não estão instalados em todo o sistema. Encontrei o ncurses-devel rpm e extraí as pastas 'lib' e 'include', onde eu as colocaria e como diria ao script ./configure para encontrá-las para que eu pudesse configurar e construir o pacote localmente?
Edit: Acabei contornando isso instalando o SO idêntico no Virtualbox, construindo o pacote lá e copiando nos binários.
Respostas:
Eu fiz isso com bastante frequência no meu último trabalho - a solução que parecia funcionar melhor foi criar um diretório ~ / usr e usar o argumento --prefix para apontar os scripts ./configure na direção certa. Aqui estão as etapas:
./configure --prefix=/home/<username>/usr
Esse arranjo funcionou para mim na maioria das situações em que eu precisava criar coisas no espaço do usuário. A parte mais difícil é geralmente encontrar e criar todas as dependências necessárias, mas isso requer apenas um uso minucioso ou criterioso da funcionalidade 'obter código-fonte' do seu gerenciador de pacotes.
fonte
${HOME}
vez de~
em todas as minhas chamadas de exportação e, em seguida, o pkg-config ficou feliz e conseguiu encontrar as bibliotecas e pacotes instalados pelo usuário.Normalmente você deve reconfigurar e alterar o código para definir um novo local no diretório inicial ou outro caminho para todas as bibliotecas e programas ...
Mas, IMHO, a maneira mais fácil (se você tem bastante espaço) é usar o chroot em um subdiretório com toda uma distribuição Linux instalada nele. Como um usuário normal, você não pode usar o chroot , mas pode usar estas ótimas ferramentas: fakechroot e fakeroot
Para criar o sistema de arquivos chroot, eu gosto de implantar um diretório com o Debian (ou qualquer outro derivado do Debian como o ubuntu) usando o utilitário debootstrap .
Portanto, o procedimento é fácil (não entrarei em detalhes técnicos, leia os manuais de comando):
Se você precisar de mais detalhes, acho que tinha um script em algum lugar para fazer tudo isso.
fonte
Outra solução para esse problema é usar o prefixo do Gentoo, como os usuários do MacOSX e outra plataforma (solaris, AIX):
http://www.gentoo.org/proj/en/gentoo-alt/prefix/
Ele irá compilar a pilha do Gentoo (com portage) em um local $ PREFIX. Ele usa os pacotes do Gentoo, a maioria dos pacotes suporta o uso dessas configurações.
O Portage acompanhará todas as dependências, você terá a última versão do software, foi testada pela comunidade ...
fonte
Se
prefix=/home/foo/usr
não funcionar, tente:fonte