Consistência nos diretórios de instalação padrão

1

Sou muito novo no Linux (Ubuntu 13.10) e tenho dificuldade em entender o sistema de arquivos, particularmente no que diz respeito à instalação de aplicativos. No Windows, quando instalei um aplicativo, coloquei o conteúdo do aplicativo em uma pasta em Arquivos de Programas, por padrão. Eu sabia exatamente onde procurar se quisesse procurar todos os meus aplicativos, por exemplo, para ver se já havia instalado alguma coisa. No entanto, descobri que, no Linux, há muito menos consistência.

Por exemplo, quando instalei o editor de código do Komodo, por padrão ele criou uma pasta em /home . Então, quando eu instalei o editor do TexLive Latex, por padrão ele criou uma pasta em /usr/local . A partir da pesquisa, descobri que a maioria dos aplicativos deve ser instalada em /bin ou /usr/bin . Por que existem tantos locais padrão diferentes para instalar aplicativos? Por que não a consistência encontrada no Windows?

Em uma nota ligeiramente diferente, se eu fosse mover minha pasta Komodo de / home para / bin, por exemplo, fazer um simples recorte e colar seria aceitável ou haveria referências à pasta original em / home que agora será inválido? Eu já adicionei a pasta bin do Komodo a $ PATH, então eu já sei sobre isso, mas existem outras referências?

    
por Karnivaurus 28.02.2014 / 15:04

3 respostas

2

Na verdade, ele tende a ser consistente. O padrão é a especificação FHS e, embora seja reconhecidamente nem sempre seguido, a maioria é:

  • /bin : binários de comando do usuário essenciais (para uso por todos os usuários)
  • /boot : arquivos estáticos do gerenciador de inicialização
  • /dev : arquivos do dispositivo
  • /etc : configuração do sistema específica do host
  • /home : diretórios iniciais do usuário (opcional)
  • /lib : bibliotecas compartilhadas e módulos de kernel essenciais
  • /media : ponto de montagem para mídia removível
  • /mnt : ponto de montagem para um sistema de arquivos montado temporariamente
  • /opt : Pacotes de software de aplicativos adicionais
  • /root : diretório inicial para o usuário root (opcional)
  • /sbin : binários do sistema
  • /srv : Dados para serviços fornecidos por este sistema
  • /tmp : arquivos temporários

Então, você também tem

  • /usr/local : The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated. It may be used for programs and data that are shareable amongst a group of hosts, but not found in /usr.

A abordagem é apenas diferente é tudo. Enquanto o Windows armazena arquivos por fonte (todos os arquivos instalados por um programa são colocados na mesma pasta), os sistemas * nix são instalados por tipo . Assim, a página de manual estará em /usr/man ou /usr/local/man , os executáveis ( .exe no Windows) em /usr/bin ou /usr/local/bin , as bibliotecas ( .dll em WIndows) em /usr/lib ou /usr/local/lib etc.

O bom é que você não se importa, tudo isso é controlado pelo gerenciador de pacotes ( dpkg em sistemas baseados no Debian como o Ubuntu). Então, para ver onde um determinado pacote instalou seus arquivos, você pode usar este comando (usando o pacote xterm como exemplo):

$ dpkg-query -L xterm 
/usr
/usr/share
/usr/share/menu
/usr/share/menu/xterm
/usr/share/doc-base
/usr/share/doc-base/xterm-faq
/usr/share/doc-base/xterm-ctlseqs
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/scalable
/usr/share/icons/hicolor/scalable/apps
/usr/share/icons/hicolor/scalable/apps/xterm-color.svg
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/48x48/apps/xterm-color.png
/usr/share/applications
/usr/share/applications/debian-xterm.desktop
/usr/share/applications/debian-uxterm.desktop
/usr/share/pixmaps
/usr/share/pixmaps/filled-xterm_32x32.xpm
/usr/share/pixmaps/mini.xterm_32x32.xpm
/usr/share/pixmaps/xterm-color_32x32.xpm
/usr/share/pixmaps/xterm_32x32.xpm
/usr/share/pixmaps/filled-xterm_48x48.xpm
/usr/share/pixmaps/mini.xterm_48x48.xpm
/usr/share/pixmaps/xterm-color_48x48.xpm
/usr/share/pixmaps/xterm_48x48.xpm
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/xterm.1.gz
/usr/share/man/man1/uxterm.1.gz
/usr/share/man/man1/resize.1.gz
/usr/share/man/man1/lxterm.1.gz
/usr/share/man/man1/koi8rxterm.1.gz
/usr/share/doc
/usr/share/doc/xterm
/usr/share/doc/xterm/xterm.terminfo.gz
/usr/share/doc/xterm/xterm.termcap.gz
/usr/share/doc/xterm/README.i18n.gz
/usr/share/doc/xterm/ctlseqs.ms.gz
/usr/share/doc/xterm/ctlseqs.txt.gz
/usr/share/doc/xterm/xterm.faq.gz
/usr/share/doc/xterm/changelog.Debian.gz
/usr/share/doc/xterm/NEWS.Debian.gz
/usr/share/doc/xterm/copyright
/usr/share/doc/xterm/README.Debian
/usr/share/doc/xterm/xterm.faq.html
/usr/share/doc/xterm/xterm.log.html
/usr/bin
/usr/bin/resize
/usr/bin/xterm
/usr/bin/uxterm
/usr/bin/lxterm
/usr/bin/koi8rxterm
/etc
/etc/X11
/etc/X11/app-defaults
/etc/X11/app-defaults/XTerm-color
/etc/X11/app-defaults/XTerm
/etc/X11/app-defaults/UXTerm-color
/etc/X11/app-defaults/UXTerm
/etc/X11/app-defaults/KOI8RXTerm-color
/etc/X11/app-defaults/KOI8RXTerm

Assim, embora seja fácil ver onde tudo está instalado, você raramente precisa fazê-lo. Para remover um pacote, basta usar o apt:

sudo apt-get remove xterm

Você pode seguramente deixar o sistema se preocupar com onde tudo está instalado, ao contrário do Windows, você não precisa ter um deinstaller específico para remover cada programa, tudo é gerenciado centralmente pelo gerenciador de pacotes e é na verdade muito mais transparente para o usuário.

    
por 28.02.2014 / 16:45
1

O sistema de arquivos Unix evoluiu ao longo do tempo, nada está definido, mas são convenções.

Vale a pena se familiarizar com isso, mas não precisa ser memorizado em detalhes. Artigo da Wikipédia

Eu não iria mexer com a sua instalação do Komodo, deixe-o, com o passar do tempo, você se tornará mais familiarizado com o layout.

    
por 28.02.2014 / 15:45
1

O Linux segue regras diferentes do Windows.

O Linux favorece o uso de um gerenciador de pacotes para gerenciar o software instalado. A maneira de saber se um programa está instalado não é procurando por seus arquivos, mas pesquisando a lista de pacotes instalados. Distribuições diferentes usam diferentes gerenciadores de pacotes; no Ubuntu, a GUI é o Centro de Software, e existem várias ferramentas de linha de comando que podem mostrar se um pacote está instalado e informações sobre esse pacote, sendo as principais:

dpkg -l name-of-package
dpkg -s name-of-package
apt-cache policy name-of-package
aptitude show name-of-package

Se um programa é instalado através do gerenciador de pacotes, você não se importa onde ele está instalado: você não deveria estar modificando os arquivos de qualquer maneira. Se você precisar investigar algo, você pode listar os arquivos pertencentes ao pacote (no Ubuntu, com dpkg -L name-of-package ). O software instalado pelo gerenciador de pacotes reside nos diretórios em / ( /bin para programas executáveis, /lib para bibliotecas de códigos, /sbin para programas úteis apenas para o administrador do sistema) ou em /usr (que tem esses mesmos subdiretórios mais alguns mais). A distinção entre / e /usr é histórica - nos dias em que os discos rígidos eram pequenos e /usr podia ser compartilhado entre máquinas, enquanto / era necessário para inicializar.

Os programas instalados manualmente pelo administrador do sistema, sem o gerenciador de pacotes, estão em /usr/local . Essas são instalações de software "locais", em oposição às instalações feitas pelo sistema operacional. O Windows tem uma distinção semelhante - programas em c:\Windows vs programas em c:\Program Files - mas é menos perceptível no Windows porque poucos programas são empacotados com o sistema operacional e não há gerenciador de pacotes padrão, então tudo fica em c:\Program Files .

Os programas instalados por um usuário acabam no diretório inicial desse usuário.

O Linux (como outros sistemas unix) usa essa organização onde os arquivos são agrupados por função e não por origem, porque a função determina como outros programas procurarão por esses arquivos. Por exemplo, todos os executáveis estão em alguns diretórios ( /bin , /usr/bin , /usr/local/bin , ~/lib ), portanto, não é necessário modificar o PATH ao instalar um novo programa.

O que é um pouco inconsistente é o uso de /opt . É para software que é organizado do jeito do Windows, com um diretório por pacote. O Ubuntu não o usa, mas alguns programas aparecem assim, por exemplo, o Google Chrome.

Em resumo:

Location               Managed by
/, /usr                package manager
/usr/local             administrator
/opt                   administrator
~ (home directory)     user

No Ubuntu, se um programa não é fornecido pela distribuição, a maneira mais fácil de instalá-lo é através de um PPA se houver um - que é para o Komodo (veja também Como instalo o Komodo Edit? ).

    
por 03.03.2014 / 03:17