Sim, é possível instalar software em diretórios diferentes de /usr
.
Um exemplo (todo o sistema) é /usr/local
. (O que talvez ainda não o ajude diretamente, pois seu /usr
é somente leitura.) O diretório /usr/local
corresponde a /usr
em seu layout (tem /bin
, /lib
etc.). Na maioria dos casos, Ele é usado para distinguir pacotes enviados como parte de seu SO base (que entrará em /usr
) daqueles instalados a partir da origem pelo administrador systemd (que entrará em /usr/local
.)
Há também /opt
, que serve para instalar pacotes em diretórios separados por pacote. Então, por exemplo, você poderia instalar o Perl 6 lá sob /opt/perl6
e isso só conteria Perl e nada mais. Você manteria diretórios separados para os pacotes separados, o que geralmente torna mais fácil "desinstalar" um pacote simplesmente removendo seu diretório. Você geralmente precisa definir $PATH
apropriadamente para acessar os programas instalados lá, ou criar links simbólicos em algum outro diretório bin
que já esteja em $PATH
para acessá-los. O gerenciamento de /opt
é normalmente destinado ao administrador, e considerando que você precisa atualizar $PATH
para cada pacote instalado, pode não ser a melhor opção ...
Para instalar o software no diretório $HOME
, uma abordagem possível é criar um subdiretório .local
na parte superior dele e corresponder à hierarquia /usr
ou /usr/local
.
Então, talvez tente isso:
mkdir ~/.local
E, em seguida, use-o como --prefix
ao instalar um novo pacote. Por exemplo, se o pacote usa um script de configuração no estilo autoconf, você pode construir e instalá-lo usando:
./configure --prefix="$HOME/.local"
make
make install
Você precisa adicionar ~/.local
ao seu $PATH
para poder acessar os programas. Então faça isso no seu ~/.bashrc
:
PATH=$HOME/.local:$PATH
export PATH
Abra um novo shell (novo terminal, ou efetue logout e login novamente) para que a alteração tenha efeito. Ou apenas execute o mesmo comando no seu shell existente. Você deve ser capaz de executar os programas a partir de ~/.local/bin
direcly agora.
Espero que isso ajude a responder sua pergunta ou, pelo menos, direcione você na direção certa!