Os programas no linux ficam no / ou no /home?

Então gente, depois de um longo tempo de adaptação e mudança de workflow acho que estou preparado para mudar de vez para o nosso amado sistema do pinguim. Minha principal duvida é: Onde ficam instalados os programas no linux? Eu já assisti todos os vídeos do Dio sobre diretórios e particionamento, só que ate hoje me fica essa pulga atrás da orelha. A duvida é mais porque eu uso SSD e HD na mesma maquina, no windows eu uso digamos o / e /home no SSD, nele ficam todos os programas instalados por conta do desempenho e as coisas recém baixadas, ou seja, arquivos temporários e programas apenas. Já o HD fica como um sistema de arquivos brutos e mais pesados como jogos, torrent, arquivos de video e seus derivados. Minha duvida é como fazer isso no linux da mesma forma que eu uso no windows.

Teve uma vez que eu tentei no linux mint da seguinte forma:

instalei o / e /home no SSD e o HD ficou como apenas como uma partição EXT4, instalei como de costume todos os programas e na hora de instalar os games via steam eu criei uma pasta dentro do HD, ate ai tudo ok. O problema era que quando eu reiniciava o sistema a steam não reconhecia que os games já estavam instalados, era como se o HD não existisse.

Se alguém tiver alguma ideia de como fazer esse workflow funcionar no linux, da mesma forma que funciona no windows, da um help ai!

No geral os programas ficam espalhados nos diretórios específicos. Por exemplo, o binário do programa fica em /usr/bin, os arquivos gerais ficam /usr/share, os arquivos de configuração ficam em /etc/nomedoprograma, arquivos de cache podem ficar no /var

Os casos de programas instalados na própria home são exceção, por exemplo se vc instalar um flatpak como usuário normal, ou se vc baixar um executável tipo appimage e deixar na home…

O steam não lembra do diretório no caso de vc montar a partição depois de iniciar o steam. Nesse seu caso o procedimento correto é criar um ponto de montagem específico para esse disco, exemplo /meuHD ou então /mnt/meuHD e configurar no /etc/fstab para montar na inicialização do sistema. Deppois vc cria uma pasta nesse local e altera as permissões para seu usuário poder ler e escrever (eu costumo criar uma pasta com o mesmo nome do usuário, e ainda criar um link simbólico na /home/user para essa localização, exemplo /home/user/meuHD -> /mnt/meuHD/user).

2 curtidas

Entendi… pra instalar o flatpak no / tem que fazer com “sudo flatpak install”?

Vou instalar o mint com o /home no HD mesmo. Na hora de instalar alguns jogos é só selecionar o caminho certinho, valeu mano!

1 curtida

É importante distinguir o ponto de montagem do dispositivo de armazenamento (também chamado de dispositivo de blocos ou block device).

Para fins didáticos, seja sda1 = /, sda2 = /home, sdb1 = /mnt/steam.

Quando sda1 está montado em /, os programas aderentes ao FHS (Filesystem Hierarchy Standard) reproduzir-se-ão em múltiplas subárvores, temos, assim:

Dispositivo Ponto de Montagem Caminho Papel
sda1 / /bin Binários essenciais do sistema
sda1 / /usr/bin Binários do sistema que oferecem recursos aos usuários
sda1 / /sbin Binários essenciais do sistema voltados ao processo de inicialização
sda1 / /usr/sbin Binários do sistema ligados a serviços que são mais voltados aos usuários
sda1 / /opt Software opcional que não adere à FHS e não segue o padrão de empacotamento
sda1 / /var Informação variável (registros, bancos de dados etc)
sda1 / /var/lib/snapd Dados do sistema Snap de distribuição de aplicativos
sda1 / /var/lib/flatpak Dados do sistema Flatpak de distribuição de aplicativos
sda2 /home /home Armazenar configurações e arquivos dos usuários não-privilegiados
sda2 /home /home/«usuário»/bin Binários do usuário (geralmente scripts). Diretório não existe por padrão
sda2 /home /home/«usuário»/.local/share/flatpak Dados do sistema Flatpak de distribuição de aplicativos (instalados para “usuário”)
sdb1 /mnt/steam /mnt/steam/«usuário» Arquivos do Steam

Como podemos ver, os programas instalados pelo sistema de empacotamento são armazenados em diretórios “bin” ou “sbin”, que ficam dentro de determinadas árvores. E outros diretórios terão os mesmos nomes, mas papéis distintos conforme a árvore, como é o caso de “lib” ou “lib64”, para bibliotecas.

Eu assumi que você possui, possuirá ou possuiria uma partição dedicada para o Steam, preferencialmente formatada em Ext4 para não causar problemas com jogos de 32 bits. Se, por outro lado, você possui uma partição muito grande e generalista para arquivos, você poderia montá-la em, digamos, “/mnt/dados_brutos” ou algo do tipo. Observe que eu utilizei uma lógica multiusuário para o Steam, por pura e simples questão de boa prática, já que não é legal um usuário sem privilégios querendo escrever na raiz de um sistema-de-arquivos. O usuário da raiz (root), então, cria um diretório para o usuário e aplica as permissões de acordo:

mkdir /mnt/steam/phzsantos
chown phzsantos.users /mnt/steam/phzsantos
chmod 700 /mnt/steam/phzsantos

O segredo está no particionamento. É importante fazer a montagem e criação dos sistemas-de-arquivos corretamente.

4 curtidas