O que o termo 'instalação' ou 'instalação' significa quando usado em conexão com o software Linux?

2

Eu não tenho experiência em programação, mas entendo como um script de shell funciona teoricamente. Existem apenas dois passos importantes para tornar um script executável,

  1. Eu tenho que dizer ao shell como interpretar o conteúdo do script escrevendo um #!/path/to/interpreter
  2. Eu tenho que dar permissão para executar o arquivo por chmod +x filename .

Até agora, eu posso entender, mas como programas "reais" que contêm muitos arquivos e são compactados em um pacote .tar.gz diferem desse tipo de instalação, quais são os passos importantes que o Linux precisa fazer por trás da cortina? a fim de tornar o programa executável? Ou resumindo: qual é o significado da instalação no Linux?

    
por Abdul Al Hazred 20.02.2015 / 12:54

2 respostas

4

A instalação de um programa Unix consiste em aproximadamente duas partes.

1) Colocando os arquivos em locais adequados

2) Definir permissões de arquivos e propriedades adequadamente

Com relação ao primeiro, o Padrão de hierarquia de arquivos do Linux  é relevante. Isso é específico do Linux, mas segue em grande parte as regras do Unix codificadas historicamente. Especificamente, binários destinados a serem executados pelo usuário são colocados em /usr/bin , binários de nível de sistema para administração etc. são colocados em /bin , binários instalados localmente são geralmente locais em /usr/local/bin etc. Esses são locais em que o sistema olha para onde olhar o tempo de execução, baseado na variável PATH, que no Debian é /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . Da mesma forma, as bibliotecas são colocadas em locais específicos, /usr/lib , /lib , /usr/local/bin etc. seguindo regras semelhantes. Novamente, por padrão, o sistema é projetado para procurar nesses diretórios em tempo de execução.

Existem outros locais especificados para colocar documentação (incluindo páginas man) e arquivos de dados, mas estes não são tão críticos para o funcionamento do sistema.

No que diz respeito ao segundo, os arquivos nas diferentes partes do sistema têm propriedades e permissões diferentes. Embora a maioria dos arquivos seja de propriedade do root, o grupo associado varia.

O maquinário atual de uma instalação varia, mas geralmente é tratado pelo destino de instalação de um sistema de compilação. Os sistemas de compilação mais comuns para sistemas livres do tipo Unix, como os sistemas baseados em Linux, são o Autotools e o Cmake.

Normalmente, há também uma camada extra. Normalmente, os sistemas Linux possuem um gerenciador de pacotes binários. Esses pacotes geralmente são criados chamando o destino da instalação, mas, em vez de instalar os arquivos no sistema, eles são instalados em um diretório temporário como parte do processo de construção do pacote binário. Para o Debian, este é geralmente o subdiretório debian/tmp do diretório de origem.

Instalar um pacote binário no sistema tem inúmeras vantagens sobre uma instalação local, notavelmente rastreando quais arquivos pertencem a qual pacote / software, e também manipulando remoções de pacotes / softwares de uma maneira limpa e confiável. Embora os sistemas de compilação possam ter um destino de desinstalação, essa não é uma maneira tão confiável de lidar com desinstalações.

    
por 20.02.2015 / 14:46
2

A instalação de um programa é feita pelo gerenciador de pacotes do sistema operacional. Então, depende do sistema operacional (Linux é o kernel).

Por exemplo Debian é um Gnu / Linux, usou apt para instalar deb packages. Redhat, suse, Freebsd. etc usam gerenciadores de pacotes diferentes.

Essencialmente, eles copiarão os arquivos para onde eles precisam estar (em algum lugar que os usuários normais não podem mudar) e definirão as permissões conforme apropriado. Ele também ajustará os arquivos de configuração apropriados.

Não há mágica nisso, o material por trás das cortinas está apenas rastreando, para facilitar a desinstalação.

    
por 20.02.2015 / 13:22