Sistemas Operacionais - Gnu/Linux Instalando Programas

2,191 views
2,067 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,191
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
38
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Sistemas Operacionais - Gnu/Linux Instalando Programas

  1. 1. 1 Sistemas Operacionais Luiz Arthur Sem dúvida o código livre está sendo o grande rival das empresas que produzem software “proprietário”. A filosofia do software livre tem confundido muitas pessoas, pois livre não está associada a software grátis e sim à liberdade. O termo livre refere-se à liberdade de o usuário executar, copiar, distribuir e aperfeiçoar o programa. O distribuidor pode até cobrar uma taxa pelo software, como acontece nas distribuições Linux empacotadas. Desde que o direito de alterar o programa e redistribuí-lo seja preservado, o software continua sendo livre. A maioria das distribuições do Linux vem muito software livre nos CD-ROMS. O próprios site do GNU contém muito software disponível. Uma vez que se possa utilizar software livre, é necessário compilar e instalar estes programas. Um ótimo site para procurar programas é o http://www.freshmeat.net. Porém para isso é necessário entender o conceito de arquivos tarball.
  2. 2. 2 Sistemas Operacionais Luiz Arthur Arquivos Tarball Os arquivos tarball são distribuições de software livre que mantêm uma estrutura de diretório, arquivos fonte, um arquivo Makefile, documentação e outros arquivos, encapsulados em um arquivo tar com compressão de dados gzip. Este método de distribuição de software é muito popular porque os utilitários tar e gzip são muitos comuns. O resultado é um arquivo de extensão .tar.gz ou .tgz. Ainda é possível encontrar os arquivos tarball com as extensões .bz2 e .tbz2. Este arquivos são compactados com o bzip2, que utiliza um algoritmo de compressão de dados melhor que o gzip. Para abrir o conteúdo de um arquivo tarball: #gzip -d arquivo.tar.gz O comando gzip descomprime o arquivo .tar.gz e retira a extensão .gz: #tar xvf arquivo.tar O utilitários tar extrai o conteúdo do pacote.
  3. 3. 3 Sistemas Operacionais Luiz Arthur Pode-se também utilizar formas mais simples: #tar xvzf arquivo.tar.gz ou #gzip -dc arquivo.tar.gz | tar vx Se o arquivo for compactado com o bzip2, ele deve ser descompactado pelo bunzip2 ou utilizar a opção -d do bzip2: #tar xvjf arquivo.tar.bz2 ou #bunzip2 arquivo.tar.bz2 e # tar xvf arquivo.tar A saída de qualquer dos comandos citados anteriormente é um conjunto de arquivos sem compactação, ou seja, os arquivo compactados deverão gerar uma estrutura de arquivos/diretórios.
  4. 4. 4 Sistemas Operacionais Luiz Arthur Compilando o Código-fonte Depois de extrair o conteúdo de um pacote de software é necessário compilar e fazer sua instalação. O compilador mais utilizado no Linux é a Coleção de Compiladores GNU – GCC. Ele compila códigos C ANSI, bem como C++, Java e Fortran. O GCC suporta vários níveis de checagem de erros nos códigos-fonte, produz informações de debug e pode ainda otimizar o arquivo objeto produzido. O GCC suporta os novos processadores Intel IA-64, permitindo que os programas executem nesta arquitetura. Alguns programas do pacote do GNU são necessários para compilar um programa código livre. São eles: Make O utilitário make é necessário para compilar múltiplos arquivos de código fonte de um projeto. Ele utiliza um arquivo de descrição geralmente nomeado makefile ou Makefile. O conteúdo deste arquivo contém regras que definem as dependências entre arquivos fonte e os comandos necessários para a compilação.
  5. 5. 5 Sistemas Operacionais Luiz Arthur A partir arquivo de descrição make ele executa seqüências de comandos que são interpretados pelo shell. Geralmente o compilador gcc é invocado com diversas opções que completam as dependências de outros arquivos objetos e bibliotecas. “DEPENDENCIA é um pacote (programa) necessário para a compilação ou funcionamento de um dado programa, um programa pode ser DEPENDENTE de um ou mais pacotes”. Mesmo os menores projetos de software podem contêm vários arquivos que têm interdependência, e o comando make facilita manter e compilar os projetos. Configure Alguns projetos incluem um arquivo especial chamado configure. Este arquivo é um script de shell que examina o sistema para verificar se as diversas dependências necessárias para compilar o projeto serão satisfeitas. O configure procura por compiladores, bibliotecas, utilitários e outros itens necessários. Ele também pode receber informações extras do usuário, como diretivas de compilação, habilitar ou desabilitar opções incluídas ou excluídas do objeto a ser compilado.
  6. 6. 6 Sistemas Operacionais Luiz Arthur Se alguma dependência estiver ausente este script (configure) avisa o usuário para que ele satisfaça instalando arquivos e programas necessários ao projeto. Depois de reunir toda a informação necessária o configure gera um arquivo Makefile customizado para o sistema. O configure é fornecido pelo programador do projeto utilizando o utilitário autoconf. Após, executar o comando configure (se este existir) para criar o arquivo Makefile, podemos continuar a instalação do sistema com os comandos make para compilar o programa e make install para instalar os arquivos compilados. Por exemplo para instalar o servidor de Web (HTTP) Apache: #tar vxzf apache-1.3.31.tar.gz #cd apache-1.3.31 #./configure #make #make install Depois de instalar você pode apagar o diretório apache-1.3.31 gerado pelo arquivo apache-1.3.31.tar.gz.
  7. 7. 7 Sistemas Operacionais Luiz Arthur Gerenciando Bibliotecas Compartilhadas Para entender a gerência das bibliotecas compartilhadas, precisa-se primeiro saber o que são bibliotecas e para que elas servem. Durante a escrita do código-fonte de um programa, o desenvolvedor faz uso de diversas funções e procedimentos já definidos em arquivos chamados bibliotecas. Estas funções permitem que o programador possa usar recursos como escrita em disco, escrita na tela, receber dados do teclado, do mouse, enviar dados pela rede e muito mais, sem a necessidade de reescrever a roda. Quando o programa é compilado, o último estágio de sua construção é fazer as ligações (linker). Alguns compiladores já fazem este processo de reunir todos os objetos necessários e compor um objeto final automaticamente. Outros necessitam que o programador execute um outro programa chamado de linker. Existem dois tipos de bibliotecas no Linux: as estáticas e as dinâmicas. A decisão de qual biblioteca utilizar compete ao programador.
  8. 8. 8 Sistemas Operacionais Luiz Arthur Ao usar uma biblioteca estática, o linker encontra as funções e procedimentos de que o programa precisa, e as copia fisicamente no arquivo de saída executável gerado. Isso faz com que o executável final possa rodar de forma independente sem utilizar nenhuma biblioteca. Mas perde-se na performance, no gasto desnecessário de memória e no tamanho final do programa. Para resolver este problema o programador pode fazer uso de bibliotecas compartilhadas (dinâmicas). Ao fazer as ligações de um programa que as utiliza, o linker faz uma referência às bibliotecas compartilhadas. Desta forma, quando este programa for executado, o sistema terá de carregar primeiro as bibliotecas necessárias. Desta maneira, os executáveis gerados através do uso de bibliotecas compartilhadas são mais eficientes, pois tendem a ser menores, usar menos memória e ocupar menos espaço em disco. O ponto fraco desta metodologia é que os programas necessitam das bibliotecas compartilhadas e uma mudança nas versões destes arquivos também pode afetar o seu funcionamento. Os arquivos executáveis são examinados no tempo de execução pelo linker de tempo de execução chamado ld.so. Este interpretador especial completa as ligações entre o executável e as bibliotecas compartilhadas. Se o ld.so não conseguir encontrar e ler as dependências, ele irá falhar e o executável não irá ser carregado.
  9. 9. 9 Sistemas Operacionais Luiz Arthur O linker ld.so mantém índice de todas as bibliotecas e sua localização em um arquivos especial chamado /etc/ld.so.cache. Ele é binário e, portanto, pode ser lido rapidamente pelo ld.so. É isto que um administrador Linux tem de estar preparado para gerenciar as bibliotecas compartilhadas e suas versões para um correto funcionamento do sistema e seus aplicativos. Os utilitários que irão ajudar nesta tarefa são: ldd O comando ldd – List Dynamic Dependencies – fornece uma lista das dependências dinâmicas de que um determinado programa precisa. Ele irá retornar o nome da biblioteca compartilhada e sua localização esperada. $ ldd /bin/bash linux-gate.so.1 => (0xffffe000) libtermcap.so.2 => /lib/libtermcap.so.2 (0xb7f8c000) libdl.so.2 => /lib/tls/libdl.so.2 (0xb7f88000) libc.so.6 => /lib/tls/libc.so.6 (0xb7e59000) /lib/ld-linux.so.2 (0xb7fad000) Este comando é importante para determinar quais são as bibliotecas necessárias de um executável.
  10. 10. 10 Sistemas Operacionais Luiz Arthur ldconfig O utilitário ldconfig cria os links e refaz o índice das bibliotecas dinâmicas do arquivo /etc/ld.so.cache. Ele procura por bibliotecas nos diretórios /usr/lib e /lib, assim como nos diretórios listados em /etc/ls.so.conf, bem como o diretório informado na linha de comando. As opções mais comuns são: -p Lista o conteúdo do cache /etc/ld.so.cache -v Mostra o progresso da atualização do cache. -f arquivo Informa um outro arquivo de configuração diferente do padrão /etc/ld.so.conf.
  11. 11. 11 Sistemas Operacionais Luiz Arthur Atividade 1 1 – Pesquise por ferramentas que facilitam a instalação em sistemas Linux. 2 – Pesquise sobre a ferramenta de instalação do Slackare, indicando as opções de como instalar, atualizar e remover os pacotes. 3- Pesquise sobre a ferramenta de instalação do Debian (que é igual ao ubunto, Kurumin, etc), indicando as opções de como instalar, atualizar e remover os pacotes. 4 - Pesquise sobre a ferramenta de instalação do Gentoo, indicando as opções de como instalar, atualizar e remover os pacotes. 5 - Pesquise sobre a ferramenta de instalação do Red-Hat, indicando as opções de como instalar, atualizar e remover os pacotes. 6 -Pesquise sobre a ferramenta de instalação apt-get (procure por versões para o Slackware), indicando as opções de como instalar, atualizar e remover os pacotes.
  12. 12. 12 Sistemas Operacionais Luiz Arthur fim

×