No Windows, aplicativos vêm em tipo .exe. Simples.
Deixe-me fazer uma pequena analogia com o Windows. .exe
arquivos são arquivos binários e há .bat
scripts no windows. A mesma coisa existe em sistemas * nix, no entanto, o Linux / Unix não depende necessariamente de extensões para definir arquivos executáveis. Você pode, ocasionalmente, encontrar .run
scripts de wendors de software proprietário, mas sob o capô eles são realmente arquivos de texto. Principalmente, as extensões são a escolha do desenvolvedor. Por exemplo, eu adiciono .sh
extension para shell scripts, mas eles não são um requisito - apenas minha própria preferência. Como eu compilo programas em C com gcc
compilador, por padrão o arquivo binário sai com .out
extensões, mas se eu quisesse eu poderia salvá-lo sem um.
Por exemplo, se você executar o comando ls -l $(which gnome-terminal)
no terminal (onde which
encontra o gnome-terminal e ls
lista suas propriedades), você verá isto:
-rwxr-xr-x 1 root root 3511 Apr 8 10:34 /usr/bin/gnome-terminal*
Nenhuma extensão, mas o arquivo em si é executável. Mais ainda, se tentarmos determinar que tipo de arquivo é esse, encontramos algo interessante:
$ file $(which gnome-terminal)
/usr/bin/gnome-terminal: Python script, ASCII text executable
É um roteiro! É um arquivo de texto que você pode ver!
Mas há outro arquivo, que está sendo chamado no script acima de /usr/bin/gnome-terminal.real
. O que file
nos diz?
$ file /usr/bin/gnome-terminal.real
/usr/bin/gnome-terminal.real: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=3ad9f22b9c39e314bc13cdd74f5917711986ca4d, stripped
Portanto, o script python realmente configura o ambiente para o executável real.
Observe a parte -rwxr-xr-x
na saída de 'ls $ (qual gnome-terminal). Veja o rwx? São permissões de leitura e gravação para o proprietário, leitura e execução para o grupo do ower e outros usuários (leitura da esquerda para a direita). Se removermos essas permissões x para o grupo e outros usuários, o aplicativo ainda será um aplicativo funcional, mas ninguém além de seu proprietário (usuário root) poderá executá-lo. Pode ser análogo à Política de Grupo Local no Windows
Quanto ao software da USC e do terminal (suponho que você use apt-get
), eles são praticamente os mesmos, principalmente arquivos binários. Aplicativos portáteis, como plugins e addons para o firefox, provavelmente estão no javascript. Mas eu não tenho conhecimento suficiente disso, então não vou dizer com certeza.
Existe uma maneira de ter todos os meus aplicativos em um gerenciador como no Windows?
Tecnicamente, você já tem um gerenciador de programas no Linux - eles são chamados de gerenciadores de pacotes, e.g. apt-get, yum
. Com o windows você instala arquivos exe que você baixou da web, certo? Com o Linux você pode fazer isso, mas mais comumente é feito através de ppa
repositórios. apt-get
tem uma lista de fontes disponíveis na web. Quando você instala algo, como sudo apt-get install someprog
, verificamos essas origens e, se o programa existe, apt-get
faz o download, assim como as bibliotecas e programas necessários, e os entrega a dpkg
, que os instala. O Ubuntu Software Center faz a mesma coisa, na verdade, está usando apt-get
nos bastidores. Mas apt-get
é coisa do Ubuntu. Se você olhar para a Red Hat ou Fedora, eles usam yum
. Mesma ideia - use repositórios para pesquisar e instalar software.