Igualando pacotes instalados no Debian/Ubuntu

Imagine aquele servidor (ou mesmo desktop) que você ficou vários dias escolhendo quais pacotes instalar…. uma hora será necessário repitir este procedimento e covenhamos, é um saco ficar levantando o que deve ser instalado e o que deve ser removido, para que as duas instalações fiquem iguais. Para quem utiliza o Debian (ou Ubuntu) existe uma forma bem fácil de resolver este problema, o comando dpkg possui duas opções que permite “equalizar” ou igualar o estado dos pacotes dessas duas instalações.

Para isso, na instalação onde você passou horas definindo o que deveria ser executado, execute o comando:

# dpkg --get-selections > pacotes.lst

Em seguida, copie o arquivo pacotes.lst para a instalação que você pretende deixar igual a primeira e executar o comando:

# dpkg --set-selections < pacotes.lst

?? importante lembrar que o comando acima não instalará nem removerá nenhum pacote da sua instalação, e sim estará definindo o estado do pacote de acordo com a primeira instalação. Para efetivar o processo de instalação/remoção dos pacotes, basta executar o aplicativo dselect, que é um front-end para o gerenciador de pacotes do Debian (deb).

# dselect

Em seguida, vá até a opção [I]nstalar (pode ser pressionando a tecla I) e em seguida pressione a tecla Enter. Após concluir o processo de instalação, escolha a opção [R]emover e pressione Enter novamente.

Aproveitando o embalo, o dselect permite configurar os repositórios do APT, assim como atualizar a lista de pacotes, instalar e remover pacotes e configurar pacotes que ainda não tenham sido configurados.

<update>
Saiu um artigo no dia 24/08 entitulado Linux Get list of installed software for reinstallation / restore software que além de apresentar a mesma coisa que relatei acima, vai um pouco além e explica como pode-se fazer a mesma coisa com distribuições baseadas em RPM.
</update>


Technorati : , , , , ,

Instalação do Oracle 9.2.0.4.0 no Debian 3.1 (Sarge)

Esse pequeno tutorial visa instalar o Oracle com a finalidade de recompilar o php com suporte ao oci8 (AKA Oracle Client). Pode ser utilizado também para efetuar a instalação de um servidor que seja o banco de dados propriamente dito, porém fica por sua conta selecionar os produtos corretos que deverão ser instalados e efetuar as otimizações de kernel necessárias. Este tutorial parte de uma instalação mínima do Debian 3.1 Sarge, contendo apenas os pacotes básicos.

1. Instalar o X-Window básico:
# apt-get install x-window-system

Efetuar a configuração conforme seu hardware.

2. Adicionar usuário e grupo para o Oracle:
# groupadd oinstall
# useradd oracle -g oinstall -s /bin/bash -d /opt/oracle
# passwd oracle
# mkdir /opt/oracle
# chown oracle:oinstall /opt/oracle

3. Instalar os pacotes necessários para efetuar a instalação:
# apt-get install libstdc++2.10-glibc2.2 gcc-2.95 libc-dev x-window-system

4. Linkar bibliotecas e o gcc necessários pelo oracle:
# cd /usr/lib
# ln -s libstdc++-libc6.2-2.so.3 libstdc++-libc6.1-1.so.2
# cd /usr/bin
# ln -sf gcc-2.95 gcc

5. Montar o CD número 1 do oracle:
# mount -oexec /dev/cdrom

6. Logar em outro terminal (Alt+F2) com o usuário oracle

7. Preparar para que o Xwindow inicie um Xterm, e inicia-lo:
$ echo /usr/bin/X11/xterm > .xinitrc
$ startx

8. Iniciar a instalação do oracle:
$ /media/cdrom/runInstaller

Durante a instalação, os produtos que devem ser instalados são:
- SQL Plus
- Oracle Call Interfaces
- Oracle Programmer

9. Após o final da instalação, adicionar as linhas abaixo no arquivo /etc/bash.bashrc:
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/OraHome1
export ORACLE_SID=unvp01
export ORACLE_TERM=xterm
export NLS_LANG=PORTUGUESE_BRAZIL.WE8ISO8859P1
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH


# Set shell search paths
export PATH=$PATH:$ORACLE_HOME/bin


# CLASSPATH:
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib

10. Por fim, adicionar o diretório de bibliotecas do oracle ao sistema:
# echo '$ORACLE_HOME/lib' >> /etc/ld.so.conf
# ldconfig

Instalando, removendo e pesquisando programas no Ubuntu e Debian

Alguns comandos úteis para instalação, remoção, informação e pesquisa de programas no Ubuntu e no Debian (via linha de comando). A apresentação dos comandos segue uma seqüência lógica do momento que instalamos até removermos um pacote.

Para pesquisarmos um pacote pelo nome:
hst:~# aptitude search iptraf
p iptraf - Interactive Colorful IP LAN Monitor
hst:~#

A primeira coluna (p) indica o estado do pacote, que pode ser:

i: Instalado
v: pacote virtual (um pacote que como dependência possui outros pacotes)
p: pacote não instalado
c: Removido, mas os arquivos de configuração ainda estão presentes
u: Desempacotado
B: Quebrado
C: Meio-configurado
H: meio-instalado
Agora, se quisermos pesquisar um pacote pela sua descrição, podemos utilizar o comando:

hst:~# aptitude search ~d"lan monitor"
p iptraf - Interactive Colorful IP LAN Monitor
hst:~#

Para obtermos maiores informações sobre um determinado pacote:

hst:~# aptitude show iptraf
Package: iptraf
State: not installed
Version: 2.7.0-7
Priority: optional
Section: net
Maintainer: Frederic Peters
Uncompressed Size: 745k
Depends: libc6 (>= 2.3.2.ds1-4), libncurses5 (>= 5.4-1)
Description: Interactive Colorful IP LAN Monitor
IPTraf is an ncurses-based IP LAN monitor that generates various network statistics including TCP info, UDP counts, ICMP
and OSPF information, Ethernet load info, node stats, IP checksum errors, and others.
hst:~#

Se for este o pacote que desejamos, para instalar basta executar o comando:

hst:~# aptitude install iptraf

Agora digamos que por algum motivo queremos remove-lo, para isso usamos o comando:

hst:~# aptitude remove iptraf

E por fim, para removermos os arquivos de configuração (que não são removidos pelo comando acima) executamos o comando:

hst:~# aptitude purge iptraf

Existem outros comandos interessantes como:

  • update: Atualiza a lista de pacotes disponíveis no repositório apt;
  • upgrade: Atualiza toda a distribuição para os pacotes mais recentes;
  • clean: Remove todos os arquivos .deb que estão no cache (/var/cache/apt/archives);
  • download: Baixa um pacote específico no diretório corrente.

Fontes:Installing Software on Debian e manpage do aptitude

Reconfigurações do Debian

Existem alguns comandos úteis que permitem reconfigurar alguns componentes do Debian ou até a distro inteira (como no primeiro boot). Segue abaixo uma pequena lista:

  • apt-setup: Permite reconfigurar os repositórios APT, é a mesma interface carregada no primeiro boot;
  • dpkg-reconfigure pacote: Efetua a reconfiguração de um pacote já instalado. Para isso, ele utiliza a mesma interface de configuração que é exibida quando um pacote é instalado (e se for aplicável ao pacote);
  • base-config: Permite efetuar a configuração do sistema base do Debian com opções como Linguagem, Timezone, usuários e senhas, hostname, apt (o mesmo do apt-setup), instalar pacotes (necessita do pacote base-config instalado).

Bem, pra quem já teve problemas no Xwindow e não sabia exatamente o que executar para reconfigura-lo (eu gostava do Xconfigurator do RedHat :) ), pode executar o comando:
# dpkg-reconfigure xserver-xfree86

Debian para usuários RedHat

Como faz pouco tempo que estou trabalhando com Debian, senti algumas dificuldades com alguns comando que encontrava no mundo RPM (RedHat, Conectiva) e não os encontrava no Debian. Para ajudar outras pessoas que encontram-se na mesma situação, e para minha própria referência, listo alguns comando que acho interessante (se tiver sugestões será muito bem vinda!):

Comandos semelhantes:

Red Hat Debian Descrição
ntsysv rcconf Definir quais serviços serão iniciados (ou não)
service invoke-rc.d iniciar/parar um serviço (ex. service postfix start = invoke-rc.d postfix start
chkconfig update-rc.d Atualiza as informações referentes a inicialização de um serviço.

Outros comandos:

  • dpkg-reconfigure pacote: Reconfigura as opções de um pacote. (a mesma tela que aparece após a instalação de algum pacote) Por exemplo: dpkg-reconfigure gpm
  • apt-file search arquivo: Pesquisa em todo o repositório Debian qual pacote contém o arquivo. Não é necessário ter o pacote instalado.

Recompilando um pacote .DEB

Descobri que existe uma forma fácil de recompilar um pacote no Debian. Tive essa necessidade pois precisei instalar o Darkice (Streamer de audio em tempo real para o Icecast2) com suporte a MP3. Como a compilação padrão so da suporte a OGG Vorbis, pesquisei a melhor forma de recompilar este pacote.

Para isso será necessário instalar o pacote apt-build (# apt-get install apt-build) e em seguida seguir os seguintes passos:

  1. Baixe o fonte do pacote que deseja compilar:
    # apt-build source
  2. Baixe e instale as dependências para compilar este pacote:
    # apt-get build-dep
  3. Caso você queira alterar alguns paramentros da configuração (./configure), edite o arquivo /var/cache/apt-build/build/ /debian/rules e altere as opções conforme suas necessidades.
  4. Compile e instale o pacote:
    # apt-build install
  5. Caso você queira pegar informações sobre um pacote compilado e instalado:
    # apt-cache showsrc

Outro comando interessante, é o apt-build world. Ele é semelhante ao make world dos *BSD e ao emerge world do Gentoo… ele *apenas* recompila todo o sistema operacional. *(existe algumas detalhes que devem ser observados.)