administração de redes linux - i

74
Pós-gradaduação em redes de computadores Administração de redes Unix/Linux Marcelo Barros de Almeida [email protected]

Upload: marcelo-barros-de-almeida

Post on 19-May-2015

6.869 views

Category:

Technology


2 download

DESCRIPTION

Curso sobre administração de redes usando Linux - Parte I

TRANSCRIPT

Pós­gradaduação em redes de computadores

Administração de redes Unix/Linux

Marcelo Barros de [email protected]

Aula 01: Sumário

Apresentação

Instalação

Fundamentos Sistemas de arquivo Shell Gerenciamento de software

Pós­gradaduação em redes de computadores

Apresentação

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

Google

IBM

NASA

Banco do Brasil

Petrobrás

Dell, HP

Novell, Redhat, Canonical

Catho

ThiNetworks

Freescale

Intel

Fujitsu

DreamWorks

WindRiver

Motorola

Sun

Sony

13

Pós­gradaduação em redes de computadores

Instalação

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 re­instalaçõ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

25

LVM: alguns exemplos

Figura: http://br.geocities.com/marcio_katan/tutorial_lvm_mandriva.html

26

Particionamento: RAID e LVM

RAID e LVM são tecnologias diferentes e, de certa forma, complementares. Em geral, usa­se 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.

29

Pós­gradaduação em redes de computadores

Fundamentos

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>  <ponto­de­mnt>

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.

Pode­se 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.

Formate­a 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 non­free; 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: bleeding­edge 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

deb­src http://br.archive.ubuntu.com/ubuntu/  hardy  main restricted

Note que são especificados: Pacotes binários (deb) ou fonte (deb­src). 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 apt­get update

Para instalar as versões mais novas de pacotes disponíveis, use o comando upgrade (será pedido uma confirmação antes):

sudo aptitude safe­upgrade

ou

sudo apt­get 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 apt­get upgrade

sudo apt­get dist­upgrade

Buscas no repositório são possíveis:

sudo aptitude seach <palavras chaves>

ou

sudo apt­cache 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 apt­get 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 apt­get remove <nome_do_pacote>

sudo apt­get 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 apt­get autoremove <nome_do_pacote>

A reinstalação de um pacote é outra ação bastante explorada:

sudo aptitude reinstall  <nome_do_pacote>

sudo apt­get install ­­reinstall <nome_do_pacote>

Finalmente, o indipensável:

aptitude ­­help

apt­get ­­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

71

Pausa para o exercício

Pratique a instalação e remoção de software !

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/

73

Dúvidas, comentários, sugestões ?

Imagem: cena do filme Madagascar, da DreamWorks

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/by­sa/2.0/legalcode

© Copyright 2008Marcelo Barros

[email protected]ções, sugestões e 

traduções são bem vindas!