Quero instalar um programa no Linux e executá-lo como um daemon. (A equipe fala 3 neste caso, mas a pergunta é de natureza geral). Não há pacote fornecido, apenas binários alcatroados. Onde na estrutura de diretórios devo colocar esse programa por convenção?
Na web, descobri que / opt é para "aplicativos adicionais opcionais", enquanto / usr é para "programas de usuário". Encontrei um tutorial sugerindo / opt enquanto o outro sugeria / usr.
Então, qual é o "mais correto"?
/usr/local
) OU sobre como criar seu próprio pacote para ele.Respostas:
O "mais correto" depende da sua distribuição. Você deve verificar as diretrizes da sua distribuição sobre onde colocar software que não é gerenciado pelo gerenciador de pacotes (geralmente
/usr/local
) OU sobre como criar seu próprio pacote para ele.Como você disse que o TeamSpeak colocou tudo em uma pasta (e pode não ser fácil reorganizar), sim
/opt/
é provavelmente o melhor.(Mas, por exemplo, no Archlinux, o gerenciador de pacotes pode instalar lá, então eu ainda faria um PKGBUILD para instalar
/opt
.)Além disso, as distribuições geralmente tentam seguir o padrão de hierarquia do sistema de arquivos , portanto, é aqui que se busca uma convenção mais genérica.
fonte
Se você estiver compilando seu próprio software, controlará o local da instalação. Por convenção, o software compilado e instalado manualmente (não através de um gerenciador de pacotes, por exemplo, apt, yum, pacman) é instalado no
/usr/local
. Alguns pacotes (programas) criarão um subdiretório dentro/usr/local
para armazenar todos os seus arquivos relevantes, como/usr/local/openssl
. Outros pacotes instalarão os arquivos necessários nos diretórios existentes, como/usr/local/sbin
e/usr/local/etc
. Estes são simplesmente locais padrão e podem ser alterados durante a compilação.Quando você está compilando software, o local da instalação pode ser especificado usando a
--prefix=
opção ao executar./configure
. É altamente recomendável que você analise todas as opções disponíveis para o seu pacote executando$ ./configure --help | less
. Além disso, é uma boa idéia pesquisar os documentos INSTALL e README fornecidos com o seu pacote. Eles tendem a incluir instruções de instalação e informações de dependência específicas do pacote.Observe também que, embora você possa armazenar software em qualquer lugar, de acordo com a FHS , o código fonte do software instalado localmente deve ser armazenado em
/usr/local/src
Padronização, onde você armazena suas árvores de origem, permitindo localizar facilmente uma árvore se você precisar copiar um estoque arquivo de configuração ou binário. Mesmo que alguns pacotes o usem, seu código-fonte não deve ser armazenado,/usr/src
pois é designado para software de sistema, como o kernel.Por fim, você precisa garantir que seu local de instalação esteja incluído no seu
$PATH
. Se você decidir instalar o seu pacote,/opt
mas ele não estiver no seu,$PATH
o shell não encontrará os executáveis e você precisará usar o caminho absoluto para chamar seus programas. Aqui estão algumas ótimas discussões da UA sobre como configurar seu$PATH
Leitura adicional:
man hier
fonte
O Linux Standard Base e o Filesystem Hierarchy Standard são, indiscutivelmente, os padrões de onde e como você deve instalar o software em um sistema Linux e sugeriria software colocando que não está incluído na sua distribuição seja em
/opt
ou/usr/local/
ou melhor subdiretórios nele (/opt/<package> /opt/<provider> /usr/local/bin
).A melhor prática é converter o software baixado em um pacote de software instalável nativo da sua distribuição, por exemplo, formatos dpkg ou rpm. Isso facilitará a geração de relatórios, a atualização e a remoção limpa do software.
fonte
/opt
e/usr/local/
eram as duas opções disponíveis, mas queria informações específicas sobre qual dessas opções usar. Essa poderia ser uma resposta válida se, em vez disso, alegasse que os dois locais são intercambiáveis (embora eu questionasse que seria uma resposta correta nesse caso).Os binários entram na
bin
pasta por convenções comuns; como você organizaria sua estrutura de pacotes, é com você, posso pensar/opt/<prog_name>/
se é apenas uma lista de binários.fonte
Eu tive a mesma pergunta ao instalar o Eclipse através do instalador do Eclipse.
Percebi que o Gimp, Perl e Vim estão instalados na
/usr/share
pasta e decidimos instalá-lo lá.fonte
Existem duas maneiras pelas quais os programas podem ser instalados, dependendo de como estão compactados.
Através do gerenciador de software (apt, synaptic, Gdebi etc.) - o programa está em uma forma de pacote, geralmente .deb ou rpm. Na maioria dos casos, os gerentes de software lidam com dependências e instalam binários geralmente em
/usr/bin
, arquivos de configuração/etc
e assim por diante. Eles também podem criar um arquivo de configuração para o programa em sua casa, geralmente~/.foo
. Se você pode editar este arquivo, também pode alterar facilmente as configurações da sua sessão dessa maneira. Quando você remove o pacote, o gerente encontra todos os arquivos e os remove de forma limpa (ele armazenava todos os locais em um arquivo de texto especial). Mas isso pode preservar alguns arquivos de configuração, por exemplo, o da sua pasta pessoal.Você baixa um programa (geralmente compactado) em uma forma de arquivos binários pré-compilados para sua arquitetura. O arquivo executável do programa geralmente está em uma única pasta ao lado de outros arquivos (bibliotecas vinculadas dinamicamente etc.) Essa pasta inteira pode ser copiada, com privilégios de root, para
/opt
ou/usr/bin
e, se as permissões permitirem, podem ser usados por qualquer usuário. Eu mesmo coloquei as pastas com arquivos binários na minha pasta pessoal~/bin
. Agora você deve conseguir executar o programa chamando seu arquivo bin.fonte