Preciso compilar algum software na minha máquina Fedora. Qual é o melhor lugar para colocá-lo para não interferir no software empacotado?
package-management
compiling
software-installation
directory-structure
fhs
theotherreceive
fonte
fonte
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.fonte
/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 usarsudo
nada e é muito bem separado do resto do seu sistema. Por exemplo:E se você quiser, poderá adicionar
/home/username/stage/bin
ao seu$PATH
.fonte
/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çõesfonte
/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.fonte
/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
Então eu crio um link simbólico para ele:
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.
fonte
Isso me lembra que eu preciso usar o checkinstall com mais frequência! Dessa forma, eu apenas faço o de sempre
Seguido por
para criar um arquivo .deb ...
fonte
Se houver possibilidade - sugiro compilar seu software e criar o pacote FC (acredito que ele esteja usando o yum para instalar pacotes de software). Em seguida, você pode instalar esse pacote do seu próprio software compilado e removê-lo sem bagunçar todo o sistema.
fonte
Se você deseja instalar e remover facilmente vários aplicativos criados por você, pode usar o Stow como um gerenciador de pacotes simples.
fonte
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.fonte
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 :)
fonte
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:
Eu não faria isso por tudo, mas é bom durante o desenvolvimento.
fonte
Na verdade, não é tão difícil criar deb ou rpm a partir de um tarball de origem. Dessa forma, você pode usar os recursos do gerenciador de pacotes da sua distribuição para manter seu sistema limpo. É isso que faço na maioria das vezes: basta criar um pouco de rotação.
fonte
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.
fonte
Sempre existe a opção de "colocá-lo onde ele pertence", mas escrever uma rpm simples, primeiro.
fonte
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
fonte
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.
fonte
Escreva um RPM, não é difícil, tem diretrizes sobre onde colocar as coisas e facilita a desinstalação.
Se você fizer isso, instale os arquivos abaixo
/usr
e não abaixo/usr/local
, como todos os outros arquivos enviados pelo sistema de empacotamento.fonte