Preciso compilar algum software na minha máquina Fedora. Qual é o melhor lugar para colocá-lo para não interferir no software empacotado?
Preciso compilar algum software na minha máquina Fedora. Qual é o melhor lugar para colocá-lo para não interferir no software empacotado?
Respostas:
Regra geral, pelo menos nos sistemas com sabor Debian:
/usr/local
para o material que é -ie "de todo o sistema" /usr/local
tende a ser no padrão de um distro $PATH
, e segue uma hierarquia padrão diretório UNIX com /usr/local/bin
, /usr/local/lib
, etc.
/opt
para coisas que você não confia para fazer todo o sistema, com per-app prefixos-ie /opt/firefox-3.6.8
, /opt/mono-2.6.7
e assim por diante. O material aqui requer um gerenciamento mais cuidadoso, mas também é menos provável que interrompa o sistema - e é mais fácil de remover, pois você exclui a pasta e ela desapareceu.
/opt
se você sudo
instalar.
Se você realmente não quer que isso interfira, não o coloque em lugar algum $PATH
.
Se você quiser $PATH
, pelo menos, certifique-se de não instalar o /usr/local
. Descobri que muitos softwares parecem lá, mesmo que estejam instalados pela distribuição /usr
.
Minha maneira favorita de instalar software compilado sob encomenda está no meu $HOME
diretório. Dessa forma, você não precisa usar sudo
nada e é muito bem separado do resto do seu sistema. Por exemplo:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
E se você quiser, poderá adicionar /home/username/stage/bin
ao seu $PATH
.
/usr/local
).
A ESF diz colocá-lo em / usr / local onde as distribuições não deveriam estar tocando. /usr/local/bin
para os binários /usr/local/src
da fonte e /usr/local/lib
das bibliotecas. Consulte a especificação da FHS para obter mais informações
/etc/mysql
para a configuração?
/usr/local/etc
pasta por padrão, eu acho que eu deveria usar isso ... :-)
Na maioria das vezes, gosto de colocar minhas próprias coisas compiladas /opt
. É uma espécie de lugar pseudo-padrão. Você também pode considerar /usr/local
, mas eu prefiro manter meu material 100% isolado.
/opt
, no entanto, eu já vi muitas vezes onde /usr/local
está cheio de lixo que vem da distro
/usr/local
foram hierarquias de diretórios paralelas às da árvore padrão e talvez indexar arquivos para coisas como TeX.
Coloque-os para /usr/local/src
.
O que faço é extrair a fonte neste diretório. Isso criará um caminho como
/usr/local/src/postgresql-8.3.7
Então eu crio um link simbólico para ele:
/usr/local/src # ln -s postgresql-8.3.7 postgresql
Faça todo o seu edifício /usr/local/src/postgresql
.
Fazer as coisas dessa maneira ajuda quando você precisa alternar entre versões e documentos que versão está usando.
Isso me lembra que eu preciso usar o checkinstall com mais frequência! Dessa forma, eu apenas faço o de sempre
./configure
make
Seguido por
sudo checkinstall
para criar um arquivo .deb ...
Se você deseja instalar e remover facilmente vários aplicativos criados por você, pode usar o Stow como um gerenciador de pacotes simples.
Pelo FHS , /usr/local/
é usado para aplicativos compilados a partir da fonte, enquanto /opt/
é usado para aplicativos de terceiros não suportados pelo fornecedor do sistema operacional.
Duas coisas que eu recomendaria:
Em todo o sistema: use stow e instale em / usr / local / stow / package-version. Então você pode alternar facilmente entre as versões.
Na minha casa, ou se eu não tiver permissões de gravação / usr / local, instalo pessoalmente programas em ~ / .local, sugerido pelo padrão XDG .
Você também pode usar o stow localmente, embora nunca o tenha feito :)
Eu tenho uma configuração um pouco diferente da maioria das pessoas, porque desenvolvo muito. Eu tenho um diretório / home / jackson / bin / no qual eu instalo o material e editei meu arquivo .bashrc adicionando isto:
export PATH=/home/jackson/bin/bin::$PATH
export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH
Eu não faria isso por tudo, mas é bom durante o desenvolvimento.
se você estiver compilando um aplicativo, poderá adicionar o caminho dos executáveis na variável env PATH. isso não afetará outros usuários.
Se você deseja que seu aplicativo esteja disponível para todos os usuários do sistema e tenha as permissões necessárias, use / opt. Se você deseja que o aplicativo esteja disponível apenas para você (e raiz), use / home / nome de usuário
A maneira mais fácil de fazer isso é pegar o pacote fonte ( .src.rpm
para RPMites), descompactá-lo, hackear a nova fonte / configuração / o que quer que seja, alterar a versão adequadamente e compilar. A instalação disso torna seu gerenciador de pacotes ciente do novo pacote, permite considerá-lo para dependências e desinstalar / atualizar.
Esta é uma tarefa árdua na primeira vez, mas se uma nova versão (ou algum patch crítico) for lançada, será mais fácil atualizar. Outro benefício é que você pode criar seu próprio repositório com software local, para ser compartilhado, por exemplo, pelas máquinas em um laboratório.