Post on 19-May-2015
description
Pósgradaduação em redes de computadores
Administração de redes Unix/Linux
Marcelo Barros de Almeidamarcelobarrosalmeida@gmail.com
Aula 01: Sumário
Apresentação
Instalação
Fundamentos Sistemas de arquivo Shell Gerenciamento de software
4
Marcelo Barros ?
● Formação:
● Engenheiro eletrônico (EFEI, 1996)● Mestre (UFMG, 1998)● Doutor (UFMG, 2002)
● Atualmente:
● Engenheiro (Smar Equip. Industriais LTDA)● Professor do Barão de Mauá
● Detalhes:
http://linuxabordo.com.br/wiki/index.php?title=Marcelo_Barros
http://jedizone.wordpress.com
http://www.twitter.com/marcelobarros
smar
5
Objetivos da disciplina
Instalação
Capacitação básico no uso de sistemas Linux/Unix
Monitorização e diagnóstico de redes
Configuração de rede básica e avançada
Entendimento do funcionamento dos principais serviços de rede
Exercitar os princípios aprendidos
6
Bibliografia básica
Beginning Ubuntu Server Administration: From Novice to Professional, Sander van Vugt Editora Apress, 2007
Manual de Administração do Sistema UNIX, Nemeth, Garth Snyder e Scott Seebass, Editora Bookman, 3º Edição, 2002.
7
Bibliografia adicional recomendada
TCP/IP Illustrated, Vol 1, Richard Stevens, Addison Wesley, 1994.
Redes de computadores e a Internet: uma nova abordagem. Keith Ross, James Kurose, Pearson Brasil, 2002
Redes de computadores, A. S. Tanenbaum, Campus.
Redes de Computadores, uma abordagem sistêmica, L. L. Peterson, B. S. Davie, LTC Editora, 2004
Redes e Servidores Linux Guia Prático 2ª Edição. Carlos Eduardo Morimoto, Sulina, 2006
8
Vantagens no uso de Linux
Não exige muitos recursos de hardware
Estável, rápido e seguro
Altamente configurável
Suporte a várias plataformas e grande diversidade de hardware
Escalonável
Grande comunidade e amplo suporte, inclusive comercial
Código livre e aberto
Custo de instalação zero ou baixo
9
Desvantagens do Linux
Curva de aprendizagem um pouco mais íngrime
Ainda sem porte de alguns softwares comerciais
Impressoras mais simples geralmente sem suporte
Falta de uma maior padronização entre sabores do Linux
Alguns hardware proprietário podem não funcionar
Jogos mais complexos muitas vezes não rodam nem em emulação
Felizmente, quando se trata de redes, muitas destas desvantagens não se aplicam.
10
Áreas consagradas no uso de Linux
Gerenciamento de redes
Firewalls
Proxies
Banco de dados
Servidores de web, DNS, FTP, entre outros
Clusters
Virtualização
Desenvolvimento de software
11
(Alguns) Sabores do Linux para servidores
Debian
Redhat (versão aberta Fedora)
Suse (versão aberta OpenSuse)
Slackware
Gentoo
Ubuntu
CentOS
12
(Algumas) Grandes empresas usando ou vendendo Linux
IBM
NASA
Banco do Brasil
Petrobrás
Dell, HP
Novell, Redhat, Canonical
Catho
ThiNetworks
Freescale
Intel
Fujitsu
DreamWorks
WindRiver
Motorola
Sun
Sony
14
Instalando um servidor Linux
Ubuntu server, modismo ? Não ! Versão voltada para servidores com suporte de longo
prazo (versão LTS, 5 anos) Ampla comunidade Farta documentação Suporte comercial via canonical Software atualizado constantemente Usa a Debian como base, facilitando a instalação, administração
e manutenção Em breve sendo oferecido pelos grandes fabricantes de
hardware, como Dell
Esta imagem será usado quando aparecer uma característica específica do Ubuntu Server.
15
Pra apimentar a discussão ...
Server OS Reliability Survey 2008, publicado pelo Yankee' Group. Amostra de 700 usuários espalhados pelo mundo.
16
Particionamento
Fase mais importante durante a instalação, deve ser feita com cuidado para evitar reinstalações futuras
Depende muito da finalidade do servidor que se deseja instalar
Exige algumas decisões técnicas, como tipos de sistemas de arquivos, RAID e LVM
Particionamentos ruins podem dificultar o backup ou limitar o crescimento do sistema
17
Particionamento
Partições importantes em sistemas Linux /boot: arquivos de inicialização e kernel Linux. Deve usar um
sistema de arquivos bem conhecido e suportado. /var: dados de aplicações diversas, como spool de impressão,
email, banco de dados, logs, etc. Depende muito da finalidade do servidor e da distribuição.
/home: área destinado a contas de usuário. /tmp: área temporária de armazenamento utilizada pelos
aplicativos. swap: partição usada como área de troca temporária pelo Linux /usr: onde residem a maior parte das aplicações instaladas no
sistemas. / : o restante do sistema, não alocado ainda (/bin, /sbin, /lib...)
18
Particionamento
Particionamentos típicos usados em servidores Só pra testar:
/boot (~ 100MB) swap (~ 1GB) / (o resto)
Um pouco mais profissional: /boot (~ 100MB) swap (~ 2GB) /var (~ 4GB) /home (~ num. de usuários x espaço para cada usuário) / (o restante, mas pelo menos uns 5 a 10GB)
19
Particionamento: RAID e LVM
RAID: Redundant Array of Independent Disks Usa dois ou mais discos para permitir características como
redundância, imunidade a falha, mais desempenho ou espaço maior de armazenamento.
LVM: Logical Volume Managment Introduz uma grande flexibilidade no gerenciamento das
partições dos discos, permitindo que partições (lógicas) sejam aumentadas, diminuídas, movidas ou espelhadas.
Dá flexibilidade para que o sistema cresça de forma controlada. Permite a criação de snapshots incrementais.
São técnicas diferentes e, de certa forma, complementares
20
RAID: níveis mais comuns
RAID 0 (striping): Aumento de desempenho nas leituras e escrita (com
controladoras múltiplas). Permite que o sistema gere um grande espaço contíguo de
armazenamento. Não possui imunidade à falhas.
Figura: http://www.prepressure.com/library/technology/raid
21
RAID: níveis mais comuns
RAID 1 (mirroring): Permite redundância completa dos dados através do uso de
disco adicional para espelhamento. Desempenho similar ao uso de um disco único (com
controladoras múltiplas). Metade do espaço é perdido na redundância.
Figura: http://www.prepressure.com/library/technology/raid
22
RAID: níveis mais comuns
RAID 5: A informação de redundância é espalhada entre os discos
participante do array (pelo menos 3). Desempenho da escrita geralmente menor que o da leitura,
devido à geração da paridade. Facilita os processos de troca a quente e recuperação.
Figura: http://www.prepressure.com/library/technology/raid
23
RAID: níveis mais comuns
RAID 10: Combina os níveis 1 e 0, gerando
segurança (espelhamento completo), grande espaço de armazenamento e desempenho.
Figura: http://www.prepressure.com/library/technology/raid
24
LVM: princípios
Desenvolvido originalmente pela IBM, introduz uma grande flexibilidade no gerenciamento dos discos.
Conceitos: Volumes físicos (PV): representam
discos ou partições reais Grupo de Volumes (VG):
representam uma espécie de disco virtual composto de vários PVs
Volume Lógicos (LV): representam partições lógicas prontas para serem usadas no sistema
Figura: http://www.storix.com/aixbackup
26
Particionamento: RAID e LVM
RAID e LVM são tecnologias diferentes e, de certa forma, complementares. Em geral, usase o LVM sobre uma estrutura de RAID prédefinida, preferencialmente por hardware.
Nenhuma das duas tecnologias dispensa o backup. Mantenha o backup em dia.
Recuperação de dos em RAID/LVM é muito mais complexa do que em esquemas mais simples.
Nenhuma das duas tecnologias dispensa o backup. Mantenha o backup em dia.
RAID
LVM
File System
27
Outros tópicos da instalação
Sistemas de arquivo (prefira com journaling): ext3: estável, robusto e amplamente usado (ext4) swap: usado especificamente para partições de troca Outros: xfs (Silicon Graphics), jfs (IBM), ReiserFS Avalie a finalidade, isto pode mudar o file system
Boot loader: permite a carga de vários sistemas operacionais diferentes ou várias versões de kernel para o mesmo
Grub: atual padrão de bootloader LILO: usado durante muito tempo por várias distros ISOLinux: Usado em CDs de instalação
28
Pausa para o exercício
Executa uma instalação do Ubuntu Server 8.04 LTS com as seguintes configurações:
Particionamento com /boot, /var, /home, / e swap
Use LVM para /home e /var Ext3 como sistema de arquivos No tasksel, deixe préinstalado os serviços
LAMP e OpenSSH Deixe um pequeno espaço não alocado,
cerca de 100MB. Vamos usálo depois.
30
Características gerais de sistemas *nix
Multitarefa preemptiva, multiusuário e com suporte a multiprocessamento.
Interface gráfica independente do kernel.
Orientado a arquivos, praticamente tudo pode ser acessado como arquivo. Ex:
/dev/sda: disco rígido mestre na primeira IDE /dev/ttyS0: primeira porta serial
Estrutura de diretórios relativamente similar.
Kernel
Servidor X ShellAplicações
31
Estrutura de diretórios
/bin, /sbin: arquivos executáveis mais importantes para manutenção e configuração do sistema, usado com frequência..
/boot: arquivos de inicialização e kernel Linux. É onde ficam os arquivos do Grub também.
/dev: diretórios com arquivos representando diversos dispositivos do sistema.
/etc: diretório onde geralmente são armazenados os arquivos de configuração do sistema.
/home: distório destinado a contas de usuário. /lib e /usr/lib: diretórios onde são armazenadas as
principais bibliotecas do sistema e do kernel. /mnt e /media: área de montagem de dispositivos
(pendrives, discos externos, etc).
. |-- bin |-- boot |-- dev |-- etc |-- home |-- lib |-- lost+found |-- media |-- mnt |-- proc |-- root |-- sbin |-- tmp |-- usr `-- var
32
Estrutura de diretórios
/proc: sistema virtual de arquivos gerado pelo kernel, com informações gerais do kernel em execução e outras informações úteis para diversos programas.
/lost+found: arquivo existente em toda partição e usado para armazenamento de arquivos recuperados por comandos como fsck.
/root: diretório onde reside a conta do administrador (root). /tmp: área temporária de armazenamento. Geralmente
apagada na partida do sistema. /usr: onde residem a maior parte das aplicações
instaladas. /var: dados de aplicações diversas, como spool de
impressão, email, banco de dados, logs, etc.
. |-- bin |-- boot |-- dev |-- etc |-- home |-- lib |-- lost+found |-- media |-- mnt |-- proc |-- root |-- sbin |-- tmp |-- usr `-- var
33
Ubuntu: administração via comando sudo
No Ubuntu, a administração é planejada para ser feita através de um usuário com privilégios normais, bastando que ele faça parte do grupo admin.
Quando necessário, o usuário invoca o comando sudo para ganhar poderes de administrador (root), diminuindo as chances de erro como administrador.
Operações administrativas são feitas como a seguir (a sua senha será pedida):
sudo <comando> <opções do comando>
Caso se prefira trabalhar diretamente como administrador, configure uma senha para o root:
sudo passw root
34
Dispositivos para disco e UUID
Os arquivos dentro do /dev/ eram estáticos, até o aparecimento do kernel 2.6.10 e do gerenciador de dispositivos udev.
Discos IDE eram normalmente identificados como /dev/hd[a,b,c,d,...]. Nos kernels mais novos é usada a notação /dev/sd[a,b,c,d,...]
Número adicionais indicam partições, como /dev/sda1, /dev/sda2.
CD, DVDs eram identificados como /dev/hd* também, mas agora usam /dev/sc*.
O udev permite personalizar estes nomes (/etc/udev/rules.d/).
ls /dev/sd* /dev/sc*
/dev/scd0/dev/sda/dev/sda1/dev/sda2/dev/sda3/dev/sda5/dev/sda6
35
Dispositivos para disco e UUID
O Ubuntu passou a usar a um identificador universal único (UUID) para referenciar partições e discos.
A idéia é permitir independência do nome do dispositivo em configurações mais complexas.
No caso das partições, o UUID muda sempre que a partição é formatada.
ls /dev/disk/by-uuid/ -l
2a495a8e-f986-4a3f-9d94-1c24fa2820c8 -> ../../sda5794d5282-e505-42b8-a699-c4d3a276abc5 -> ../../sda17960bf08-9dd9-4201-8571-ea0536416e9b -> ../../sda6d29466ec-4f0e-4a81-9754-ba23949f1982 -> ../../sda2
36
Sistemas de arquivos: suporte amplo
DOS, FAT, NTFS: para compatibilidade com Windows. ext2, ext3, ext4: sistema de arquivo original do Linux. Ext3 é
sinônimo de estabilidade e robustez. xfs (Silicon Graphics), jfs (IBM), ambos com bom desempenho
mas ainda com pouco tempo de vida no Linux. ReiserFS perdendo espaço recentemente.
Suporte aos sistemas de arquivos da Sun, HP, Apple. ISO9660, Joliet: sistemas de arquivos para Cds. Sistemas de arquivos para rede, como NFS, GFS. Diversos outros sistemas de arquivos para clusters, acesso
distribuídos, gerenciamento de volumes, etc. Diversos sistemas de arquivos para dispositivos embarcados.
37
Sistemas de arquivos: desempenho
Linux Magazine Brasil, Ext 2/3, JFS, Reiser e XFS, quem ganha essa? Set/2004,
38
Sistemas de arquivos: critérios
Meus critérios pessoais: Robustez Estabilidade Suporte a redimensionamento Suporte a cotas Journaling
Necessidades especiais devem ser tratadas à parte: Maior velocidade de escrita: xfs, jfs Volumes gigantes: ext4, ZFS, entre outros
39
Sistemas de arquivos: montagem
Antes de usar um sistema de arquivo, é preciso ”montálo” Montar significa associar um diretório (ponto de montagem) a um
dispositivo (geralmente uma partição) É usado o comando mount, como a seguir:
mount o <opções> t <tipo> <device> <pontodemnt>
Exemplo1: montando um pendrive formatado no Windows
mount t vfat /dev/sdb1 /media/pendrive
Exemplo 2: montando um CD
mount t iso9660 /dev/scd0 /media/cdrom
Em sistemas com interface gráfica todo o processo é feito automaticamente.
40
Sistemas de arquivos: montagem
Na partida, o sistema monta as partições criadas pelo usuário, seguindo informação do arquivo /etc/fstab.
Podese ver, a qualquer momento, os sistemas de arquivos montados através do comando df.
O comando umount permite desmontar um sistema de arquivo, desde que ele não esteja sendo usado por nenhum processo.
umount /dev/sdb1 (ou)
umount /media/pendrive
O comando lsof <arquivo> pode lhe ajudar a apontar quem está usando o sistema de arquivos em questão.
41
Sistemas de arquivos: particionamento e verificação manual
Comando para particionamento: cfdisk ou fdisk
Comandos para formatação de uma partição: mkfs.*
Comandos para verificação de integridade: fsck.*
Exemplo: cfdisk /dev/sda (suponha que sda7 vá ser criada neste passo) mkfs.ext3 /dev/sda7 fsck.ext3 /dev/sda7 mkdir /mnt/pos (cria o diretório /mnt/pos) mount /dev/sda7 /mnt/pos
Falta adicionar uma linha ao fstab para que a modificação seja mantida entre reboots.
42
Sistemas de arquivos: /etc/fstab
O fstab é um arquivo texto, com campos separados por espaços ou tabs, com o seguinte formato:
<SISARQ> <MNT> <TIPO> <OPT> <DUMP> <PASS>
SISARQ: Sistema de arquivos (dispositivo ou UUID)
MNT: Ponto de montagem
TIPO: Tipo do sistema de arquivos
OPT: Opções de montagem (ro, rw, auto, defaults, ...)
DUMP: Frequência de uso do dump nesta partição
PASS: Ordem em que o fsck será usado para verificar erros
43
Sistemas de arquivos: /etc/fstab
# /etc/fstab: static file system information.## <file system> <mount point> <type> <options> <dump> <pass>proc /proc proc defaults 0 0# /dev/sda2UUID=d29466ec-4f0e-4a81-9754-ba23949f1982 / ext3 relatime,errors=remount-ro 0 1# /dev/sda1UUID=794d5282-e505-42b8-a699-c4d3a276abc5 /boot ext3 relatime 0 2# /dev/sda6UUID=7960bf08-9dd9-4201-8571-ea0536416e9b /home ext3 relatime 0 2# /dev/sda5UUID=2a495a8e-f986-4a3f-9d94-1c24fa2820c8 none swap sw 0 0## adicionando a nossa nova linha/dev/sda7 /mnt/pos ext3 defaults 0 3
Deixando a alteração permanente no fstab:
44
Pausa para o exercício
Para o espaço não alocado deixado no momento da instalação, faça o seguinte:
Edite o particionamento do disco e crie uma nova partição do tipo xfs.
Formatea para usar ext3. Monte e desmonte a partição manualmente,
no ponto de montagem /mnt/teste. Coloque uma entrada no /etc/fstab para
deixar automático o processo de montagem da partição.
Reboot e veja se está tudo certo. Obs: não esqueça de usar o sudo !
45
Linha de comando (shell)
Para um administrador Linux, é praticamente impossível não ter contato com a linha de comando.
Um bom editor, um guia de referência e as páginas de manual podem ajudar muito no início.
Com o tempo você vai notar que é mais rápido digitando alguns comandos do que dando cliques.
A ausência de interface gráfica elimina bugs de segurança potenciais.
No entanto, caso se sinta mais confortável ou a linha de comando seja muito improdutiva num primeiro instante, instale uma GUI até se acostumar.
46
Linha de comando (shell): dicas gerais
O sistema é todo dependente da caixa (Teste <> teste) A barra de separação de diretórios é sempre para a direita: ”/” Arquivos que começam com ponto (”.”) são considerados ocultos por
padrão e não são mostrados a menos que opções adicionais sejam dadas.
Os diretórios ”.” e ”..” são como no DOS, indicando o diretório atual e o imediatamente superior.
Vários comandos numa mesma linha podem ser separados por ponto e vírgula (”;”).
Finalizar o comando com ”e” comercial (”&”) permite que o comando seja executado em background, liberando o prompt.
Extensões não são obrigatórias e o ponto é só mais um caractere. Asterisco (”*”) e interrogação (”?”) também são curingas, como no DOS.
Adicionalmente, {} e [] desempenham funções especiais.
47
Linha de comando (shell): editores de texto
Existem muitas opções. Escolha um mais simples e comece a aprender alguns comandos do vi paralelamente.
nano: default do Debian/Ubuntu.
mcedit: uma boa relação para quem vem do Windows.
vi/vim: Presente em todas as distribuições. Com o tempo você passa a gostar dele (sintaxe colorida muito boa, procuras e substituições facilitadas, edição poderosa).
Outros: joe, pico, emacs ...
48
Linha de comando (shell): help
Com o tempo você também irá memorizar várias opções e comandos. Até lá, use e abuse do manual:
Obtendo detalhes de um comando:
man <comando>
Procurando nas páginas do manual:
apropos <palavras chaves>
Local padrão para documentação no Ubuntu/Debian:
/usr/share/doc/<nome do aplicativo>
Geralmente os comandos tem opção help:
<comando> help
49
Linha de comando (shell): variáveis de ambiente
Como em outros sistemas, existem variáveis de ambiente num shell usadas pelo sistema operacional.
Os comandos set ou env mostram as variáveis atuais.
Algumas variáveis importantes: PATH: path usada na busca de arquivos PS1: definição do prompt HOME: local da conta do usuário logado SHELL: shell em uso pelo usuário VISUAL: editor de textos default do usuário
50
Linha de comando (shell): variáveis de ambiente
As principais variáveis são definidas no arquivo /etc/profile, valendo para todos os usuários. Outras são criadas no momento do login.
Para se criar uma variável de ambiente, use o comando export ou set (este último só deixa a variável válida para o shell corrente):
export MYPATH=/mnt/pos
No arquivo /home/<usuário>/.bashrc podem ser adicionadas variáveis e outras configuração. Este arquivo é carregado toda vez que o usuário se loga ao sistema.
51
Linha de comando (shell): atalhos úteis
CTRL+C: Finalizar a execução do comando e retorna ao prompt do shell.
CTRL+Z: Manda para segundo plano o comando em execução, liberando a linha de comando.
CTRL+R: Permite buscar nos últimos comandos digitados.
CTRL+P e CTRL+N navegam nos últimos comandos.
O comando history lista os últimos comandos dados. Exclamação (”!”) seguido do número do comando permite executálo novamente.
O arquivo /home/<usuário>/.bash_history tem a lista dos últimos comandos digitados.
52
Linha de comando (shell): comandos básicos para manipulação de arquivos
cd: muda de diretório.
pwd: imprime o diretório atual.
mkdir: cria um novo diretório.
rm: apaga arquivos e/ou diretórios.
ls: lista o conteúdo de um diretório.
cp: copia arquivos.
mv: move arquivos.
touch: cria um arquivo vazio.
man: permite obter informações sobre um comando.
53
Linha de comando (shell): comandos básicos para manipulação de arquivos
cat: imprime o conteúdo de um arquivo no terminal.
tac: imprime o conteúdo de um arquivo mas em ordem inversa.
tail: mostra as últimas linhas de um arquivo.
head: mostra as primeiras linhas de um arquivo.
more: visualiza um arquivo na tela, passo a passo.
less: uma melhoria do more, permitindo também voltar na visualização.
man: permite obter informações sobre um comando.
54
Linha de comando (shell): comandos básicos para procura
grep: procura por padrões dentro de outros arquivos.
find: procura por arquivos.
whereis: mostra a localização do arquivo.
tree: imprime a árvore de diretórios/arquivos.
locate: localiza arquivos pelo nome.
man: permite obter informações sobre um comando.
55
Linha de comando (shell): comandos básicos de sistema
uptime: mostra há quanto tempo o sistema está rodando.
free: mostra a memória livre.
uname: mostra a versão do kernel em execução e outros detalhes do sistema.
reboot, halt, poweroff: delisgamento do sistema.
shutdown: desligamento, mas com controles adicionais de hora.
dmesg: mostra as mensagens geradas pelo kernel.
man: permite obter informações sobre um comando.
56
Linha de comando (shell): comandos básicos de sistema
date: mostra a data atual.
cal: imprime um calendário em mode texto.
clear: limpa o terminal.
reset: reseta o terminal atual (útil quando caracteres estranhos começam a aparecer ”inexplicavelmente”).
shutdown: desligamento, mas com controles adicionais de hora.
df: mostra o uso atual das partições do sistema.
du: mostra o espaço usado por arquivos ou diretórios.
man: permite obter informações sobre um comando.
57
Linha de comando (shell): pipes e redirecionamento
O pipe (”|”) permite que a saída de um programa seja usada como entrada para outro programa, encadeando o processamento:
cat /etc/X11/xorg.conf | less
less /etc/X11/xorg.conf
locate bash | grep bin
ls la | less
58
Linha de comando (shell): pipes e redirecionamento
”>”: redireciona a saída do programa para um arquivo ou dispositivo. O arquivo será criado caso não exista.
ls /usr la > /tmp/arquivos
cat /etc/X11/xorg.conf > /dev/ttyS0
”>>”: redireciona a saída do programa para um arquivo ou dispositivo, mas adicionando ao arquivo caso ele já exista.
ls /home/ la >> /tmp/arquivos
”<”: redireciona a entrada do programa.
less < /etc/X11/xorg.conf
Existem outros usos e operadores, mas estes são suficientes neste momento.
59
Linha de comando (shell): links simbólicos (o que todo atalho gostaria de ser)
Mecanismo que permite a criação de referências a outros arquivos ou diretórios. Bastante flexível e útil no gerenciamento do sistema.
ln <opções> <destino_do_link> <nome_do_link>
Existem links simbólicos (”s”) e hard links (”d”). O simbólico é apenas uma referência para o destino. Já o hard é realmente idêntico ao destino.
Hard links não podem ser usados com diretórios nem podem ser feitos para outras partições.
60
Linha de comando (shell): links simbólicos (o que todo atalho gostaria de ser)
Alguns detalhes de links simbólicos: Apagar ou mover um link simbólico não apaga ou move o
destino, só o link. Copiar ou visualizar, por exemplo, um link simbólico, copia ou
visualiza realmente o destino.
Existem muitos usos para links simbólicos no sistema: Na inicialização (níveis de inicialização e init.d). Gerenciamento de versões de programas ou bibliotecas. Compatibilização de distribuições.
61
Pausa para o exercício
Pratique um pouco os comandos vistos e experimente os redirecionamentos e links!
62
Gerenciamento de software: A Gênese
No início, criou Unix o tar.gz. E o autoconf era difícil e chato; e havia trevas sobre a
recompilação; e os arquivos se moviam por todo o disco. E disse Debian: que haja pacote; e houve pacote. E a comunidade viu que era bom o pacote e fez separação
entre distros com e sem pacotes. E chamou os pacotes de .deb e criou o dpkg. Foi a tarde e a
manhã de debug, o dia primeiro. E disse Debian: haja uma gerência dos pacotes com o apt e
haja separação em repositórios. E fez Debian os repositórios; e separou os .deb entre main,
contrib e nonfree; e assim foi. E a comunidade viu que isto era bom e copiou sem dó.
63
Gerenciamento de software: Ubuntu
Arquivos(make)
Pacotes(dpkg)
Repositório(apt)
O Ubuntu se baseia na gerencia de pacotes proveniente da Debian.
Num nível mais baixo, o dpkg gerencia pacotes individuais, sem tratar dependências, apenas instalação isolada.
Num nível mais alto, o apt permite tratar dependências, atualizações, buscas e várias outras operações de nível mais elevado.
64
Gerenciamento de software: Repositórios
Os pacotes são agrupados em repositórios: main: software livre oficialmente suportado pela
Canonical. restricted: software com licenças que não são
consideradas abertas. universe: software livre sem suporte pela
Canonical. multiverse: software com licenças que não são
consideradas abertas e sem suporte pela Canonical.
backports: bleedingedge software, geralmente as últimas versões ainda pouco testadas.
65
Gerenciamento de software: Repositórios
Os repositórios são listados em /etc/apt/sources.list, contendo linhas como a seguir:
deb http://br.archive.ubuntu.com/ubuntu/ hardy main restricted
debsrc http://br.archive.ubuntu.com/ubuntu/ hardy main restricted
Note que são especificados: Pacotes binários (deb) ou fonte (debsrc). Servidor (http...), também existem servidores que operam via ftp
e CDs pode ser usados com ”cdrom:” O codename da versão atual. Respositórios disponíveis neste servidor.
66
Gerenciamento de software: aptitude e apt
Para adiconar novos repositórios, edite o /etc/apt/sources.list e atualize a base de dados do apt:
sudo aptitude update
ou
sudo aptget update
Para instalar as versões mais novas de pacotes disponíveis, use o comando upgrade (será pedido uma confirmação antes):
sudo aptitude safeupgrade
ou
sudo aptget upgrade
67
Gerenciamento de software: aptitude e apt
É possível inclusive atulizar toda a distribuição, mudando de versão (da 7.10 para 8.04, por exemplo):
sudo aptget upgrade
sudo aptget distupgrade
Buscas no repositório são possíveis:
sudo aptitude seach <palavras chaves>
ou
sudo aptcache search <palavras chaves>
68
Gerenciamento de software: aptitude e apt
Uma vez que se sabe o nome do pacote, a sua instalação pode ser feita com:
sudo aptitude install <nome_do_pacote>
sudo aptget install <nome_do_pacote>
Já a remoção é feita com remove ou purge, sendo que o purge também remove arquivos de configuração associados:
sudo aptitude remove <nome_do_pacote>
sudo aptitude purge <nome_do_pacote>
sudo aptget remove <nome_do_pacote>
sudo aptget purge <nome_do_pacote>
69
Gerenciamento de software: aptitude e apt
É possível remover um pacote e suas dependências (default para o aptitude):
sudo aptget autoremove <nome_do_pacote>
A reinstalação de um pacote é outra ação bastante explorada:
sudo aptitude reinstall <nome_do_pacote>
sudo aptget install reinstall <nome_do_pacote>
Finalmente, o indipensável:
aptitude help
aptget help
70
Gerenciamento de software: dpkg básico
O dpkg é útil ao lidar com pacotes isolados. Instalar: sudo dpkg i <pacote.deb> Remover: sudo dpkg r <pacote.deb> Purge: sudo dpkg P <pacote.deb> Procurar por padrão: sudo dpkg l <padrão> Listar arquivos num pacote: dpkg L <nome_do_pacote> A que pacote pertence um arquivo: dpkg S <padrão> E, o mais importante: dpkg help
72
Referências
Guia Foca Linux:
http://focalinux.cipsga.org.br/gol.html
Revista Linux Magazine:
http://linuxmagazine.com.br
Fórum Ubuntu:
http://ubuntuforums.org/
74
Direitos de cópia
Créditos ShareAlike 2.0Você é livre para
copiar, distribuir, apresentar e executar trabalhosfazer trabalhos derivadosfazer uso comercial deste trabalho
Sob as seguintes condiçõesCréditos. Você deve dar crédito ao autor original.Compartilhe do mesmo modo. Se você alterar, mudar, ou realizar trabalhos usando este como base,você deve redistribuir o trabalhos resultante sob uma licença idêntica a esta.
Para qualquer reuso ou distribuição você deve deixar claro os termos de licença deste trabalho.Qualquer uma destas condições podem ser abandonadas se você obtiver uma permissão do detentor dos direitos autorais.
Faça uso justo e o direitos dos outros não serão afetados de forma alguma pelas restrições acima.
Texto da licença: http://creativecommons.org/licenses/bysa/2.0/legalcode
© Copyright 2008Marcelo Barros
marcelobarrosalmeida@gmail.comCorreções, sugestões e
traduções são bem vindas!