De modo geral, no Linux,
/usr
é para programas fornecidos pela distribuição e gerenciados por seu gerenciador de pacotes (dpkg / apt, rpm / yum, emerge, etc.) e
/usr/local
é para programas instalados e gerenciados manualmente pelo administrador do sistema. Os programas em
/usr
e
/usr/local
estão instalados para todos os usuários.
Se você deseja instalar programas para seu próprio uso, coloque-os em algum lugar em seu diretório pessoal.
Eu recomendo usar o Stow ou XStow para acompanhar os programas que você instala manualmente. (Use um ou outro: eles são implementações do mesmo conceito.) Quando você instala programas manualmente, você pode escolher entre duas opções inconvenientes:
- Coloque todos os programas no mesmo diretório. Então você terá dificuldade em classificá-los, descobrir quais arquivos pertencem a quais programas, desinstalar programas, etc. Por outro lado, todos os programas são fáceis de usar: você só precisa atualizar seu PATH e outras configurações semelhantes uma vez.
- Coloque cada programa em seu próprio diretório. Então a desinstalação é tão fácil quanto
rm -r
. A desvantagem é que você tem que adicionar cada programa ao PATH e assim por diante.
Stow oferece o melhor dos dois mundos. Essa ferramenta mantém links simbólicos de um diretório comum para um diretório por programa. Você instala cada programa (da origem ou de um pacote binário) em seu próprio diretório em stow
, e o Stow cria links simbólicos em bin
, lib
, man
,…
Portanto, crie um diretório programs/stow
em seu diretório pessoal. Instale o netcdf com
./configure --prefix=~/programs/stow/netcdf-gfortran-4.3
make
make install
Em seguida, execute stow netcdf-gfortran-4.3
no diretório ~/programs/stow
para criar links simbólicos para todas as partes desse pacote.
Edite seu .profile
(ou onde quer que você coloque suas configurações de ambiente) para adicionar ~/programs/bin
ao seu caminho de pesquisa executável, ~/programs/lib
ao caminho de pesquisa de sua biblioteca, etc.
PATH="$HOME/programs/bin:$PATH"
if [ -n "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH="$HOME/programs/lib:$LD_LIBRARY_PATH"
else
export LD_LIBRARY_PATH="$HOME/programs/lib"
fi
if [ -z "$MANPATH" ]; then
MANPATH=$(manpath)
fi
export MANPATH="$HOME/programs/share/man:$HOME/programs/man:$MANPATH"
Ao compilar programas, passe --with-cppflags="-I $HOME/programs/include"
para configure
para que possa encontrar cabeçalhos na área de armazenamento.
Para obter mais informações, consulte Como acompanhar os programas e < um href="https://unix.stackexchange.com/questions/35523/what-is-an-eficaz-metodo-de-instalar-se-para-data-software-sobre-data-data-p/ 35587 # 35587 "> O que é um método eficaz para instalar software atualizado em uma máquina de produção desatualizada?