smart - gerenciador de pacotes - dicas e exemplos de comandos.

Atualizado em: 17/07/2007



Sobre este documento

Original em formato texto com marcações para txt2tags, conversão em HTML e atualização do site via script.

Tutorial dividido em duas parte para diminuir o tamanho, neste documento (parte 1), estão as dicas e instalação em geral, assuntos relacionados a canais estão no documento de continuação;
http://www.zago.eti.br/smart-channel.html

Resumo de comandos e dicas sobre uso do smart em algumas distribuïções, FAQ com mensagens da lista Linux-br em;
http://www.zago.eti.br/smart.txt

Os comandos e dicas podem não atender as suas necessidades, não ser compatível com sua instalação, tente adaptar ao seu ambiente. Comandos que requer poderes de root, torne root com su - ou use sudo, por segurança evite efetuar login e trabalhar como root.

Interface gráfica

Smart tem interface gráfica semelhante ao Synaptic, muito fácil de usar e intuitiva, instale o pacote smart-gui, dependendo da distro cria um atalho no menu, como exemplo no FC5.

FC5 menu do Gnome -> Aplicações -> Ferramentas do Sistema -> Gerenciador de Pacotes Smart

Quando não criar ou não encontrar, use atalhos, exemplo em ambiente KDE. MenuK, executar comando ou pelo atalho ALT+F2, na caixa de dialogo smart e OK.

Também pode chamar a partir da linha de comando, execute smart --gui

Pode passar parametros como install, info e etc, exemplo; smart --gui info squid, no SUSE 10 tem um comportamento muito estranho, neste exemplo de comando, abre a janela e fecha, exibe o resultado no console, mudando para install abre direto na janela pedindo confirmação, não achei esta opção funcional, prefira executar smart --gui para fazer a seleção de pacote na interface dele.

Neste documento o foco é linha de comando, utilizo no dia a dia para copiar e colar, as configurações podem ser feitas em qualquer ambiente, pesquisas e informações sobre os pacotes pode ser mais interessante em ambiente gráfico, executar remotamente via ssh pode ser mais interessante via ambiente texto, mas pode executar smart remotamente via ssh em interface gráfica, faça a conexão com a opção (-X) e no console execute smart --gui.

Os exemplos neste documento servem como minha colinha, sempre que preciso instalar algum pacote em maquina remota, faço uma conexão via ssh e depois é só copiar e colar a linha de comando, podem não atender seus propósitos mas podem facilmente serem adaptadas....

Instalar smart em algumas distribuições Linux

FC7

Instalar o gerenciador de pacotes smart via yum falhou, sempre retorna a mensagem "Nothing to do", não instala smart nem fedora-package-config-smart-6.89-7.i386.rpm. A solução mais prática foi; primeiro instalar apt e por ele instalar smart, segue as linhas de comando para copiar e copiar no konsole do root.

  yum install apt
  apt-get update
  apt-get install smart
  smart update
  smart install smart-gui -y

Depois de instalado e com smart funcionando encontrei os rpm neste mirror oficial.

Arquitetura i386 em http://mirrors.kernel.org/fedora/releases/7/Everything/i386/os/Fedora/

Arquitetura x86_64 em http://mirrors.kernel.org/fedora/releases/7/Everything/x86_64/os/Fedora/

Outro solução, menos indicada mas que também funciona. Fazer download do rpm para instalar via rpm com --nodeps. Qualquer faço novos testes com pacotes oficiais e atualizo este tópico.

Muito estranho falhar a instalação pelo yum, voltei a pesquisar com yum, encontrou (smart-gui) e não encontrou smart, quem vai usar a interface gráfica deve resolver com a instalação de (smart-gui). Qualquer dia tento em nova instalação para descobrir qual o problema, por enquanto fica aqui a solução que funcionou com rpm do rpmfind.

via yum retorna mensagem "Nada fazer"

Instalar direto falha, baixar para instalar via rpm -ivh retorna dependencia de smart-config.

Com `` --nodeps `` instala mas não cria canais.

Solução que adotei, instalar com --nodeps e depois instalar (config-smart) pelo próprio smart, por ultimo adicionar canais como exemplificado abaixo.

Arquitetura x86_64 - Comandos aplicados no shell do root

  wget  ftp://rpmfind.net/linux/fedora/development/x86_64/os/Fedora/smart-0.50-45.fc7.x86_64.rpm
  rpm -ivh --nodeps smart-0.50-45.fc7.x86_64.rpm
  smart update
  smart install http://koji.fedoraproject.org/packages/fedora-package-config-smart/7/8/x86_64/fedora-package-config-smart-7-8.x86_64.rpm
  smart update

Nestes canais estão pacotes debug e extras, não incluem os principais pacotes do sistema, como resultado de smart update retorna

Canais possuem 94 pacotes novos.

Adicione também este canal, o exemplo abaixo, linhas para copiar e colar todas as linhas de uma vez.

  smart channel --add fc7os64-rpm-md.channel \
  type=rpm-md \
  name="osfc7x64" \
  baseurl=http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/x86_64/os/
  
  Responda S para cada solicitação de canal, ou se preferir esta opção que busca o arquivo na minha maquina.
  
  smart channel --add http://200.204.198.164/zago/smart/fc7os64-rpm-md.channel -y

smart update

Agora retona

Canais possuem 1105 pacotes novos.

Mostra duas mensagens de erro relacionadas ao endereço contendo (Everything), mesmo assim funciona sem problema algum, ainda não procurei a solução.

Em 03.06.2007 já tinha atualização do Firefox e outros pacotes, para manter o sistema atualizado, execute regularmente

smart upgrade

Download, mais dicas, rpm especifico para sua arquitetura.

http://koji.fedoraproject.org/koji/buildinfo?buildID=7706 http://rpmfind.net/linux/rpm2html/search.php?query=smart-config http://rpmfind.net/linux/rpm2html/search.php?query=cdebver.so

FC5 - Fedora core 5

Tem rpm neste endereço;
http://wraptastic.org/pub/i386-linux/RPMS/
http://atrpms.net/dist/fc5/smart/

Baixe o pacote compatível com arquitetura x86 ou x86_64, comando para instalar smart em uma instalação do FC5 - x86_64 (64 bits),

Ou direto na linha de comando;
  rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms
  rpm -ivh http://dl.atrpms.net/all/smart-0.41-26.rhfc5.at.x86_64.rpm
  rpm -ivh http://dl.atrpms.net/all/smart-gui-0.41-26.rhfc5.at.x86_64.rpm 
Na ordem, as linhas acima, importa a chave de verificação do rpm, instala smart em modo texto, instala smart para interface gráfica.

Cuidado que este endereço já deve ter mudado, serve como referencia de linha de comando, procure pelo rpm do smart no Google ou nos endereços indicados acima.

Também pode fazer downlaod dos pacotes e dentro do diretório onde salvou, execute rpm -ivh mais o nome do pacote, neste formato;

rpm -ivh smart-0.41-26.rhfc5.at.x86_64.rpm

Instalar em outras versões ou arquitetura, procure pelo rpm apropriado à sua instalação, pesquise no Google, tente combinar expressões semelhantes a esta.

smart-0.41 fc5 i386.rpm

Depois de instalado, precisa atualizar a base de dados, escolha uma opção, faça pela interface gráfica ou execute na linha de comando;

smart update

Ou via ambiente gráfico, pode chamar a partir da linha de comando com smart --gui, ou procurar no menu do Gnome -> Aplicações -> Ferramentas do Sistema -> Gerenciador de Pacotes Smart.

Na instalação do smart no FC5 não configura os canais (channels), ou melhor, configura somente um canal (RPM Database) com os pacotes instalados na maquina, qualquer consulta, lista somente os pacotes instalados, não cria automaticamente canais com pacotes do espelho do Fedora ou outro qualquer, também não achei nada pronto no Google, o mesmo problema ocorre no OPENSUSE 10.1, repetindo a solução adotada na instalação do SUSE, ou seja, criar tudo na "unha", o caminho mais prático que encontrei, criar o texto e colocar na web, minha colinha e resumo de comandos para aplicar depois da instalação do smart;

  smart channel --add http://200.204.198.164/zago/smart/fc5-x86_64.channel
  smart update
  smart upgrade smart -y
  smart install smart-gui -y
  

Os passos a seguir tem o mesmo resultado do aplicado acima. Criar tudo na "unha", diretórios e canal, depois de varias tentativas consegui montar um canal que funcionou, parece tudo OK, segue os passos da criação do primeiro canal.

  
  mkdir -p /etc/smart/channels
  cd /etc/smart/channels
  # vi fc5-x86_64.channel #editor para criar o arquivo com o contéudo abaixo.
  #linux:/etc/smart/channels # cat fc5-x86_64.channel
  
  [fc5-x86_64]
  name = FC5 x86_64 Linux packages apt-rpm repository on redhat
  baseurl = http://dl.atrpms.net/fc5-x86_64/redhat
  type = apt-rpm
  components = release updates updates-testing

Atualizar base de dados; smart update

Funcionou!, atualizou a base de dados e listou arquivos novos para instalar/atualizar, tanto em modo texto como na interface gráfica.

ATENÇÃO!, este exemplo aponta para pacotes da arquitetura x86_64, CPU de 64 bits, não serve e não pode usar em instalações de arquitetura i386 até i686 (CPU de 32 bits.

Estou usando smart em ambiente de testes, parece tudo normal, eventuais problemas estou anotando no tópico "Problemas e soluções".

Gosta de aventuras? se não gosta, então remova "updates-testing" da opção acima (components), são pacotes novos, geralmente é ultima versão mas altamente sujeito a problemas, se não quer correr riscos remova estas opções "testing".

Criando mais um canal como exemplo e para testes, tente usar somente a opção "stable" e remova as demais, nem sei qual a consequencias de usar os RPM dos demais diretórios.

linux:/etc/smart/channels # cat atrpms.channel

  [atrpms]
  name = FC5 x86_64 Linux packages apt-rpm repository on atrpms
  baseurl = http://dl.atrpms.net/fc5-x86_64/atrpms
  type = apt-rpm
  components = stable testing bleeding

Sempre que fizer qualquer alteração nos canais, precisa atualizar base de dados, de novo;

smart update

Segue a dica para montar mais um canal, ou alterar o exemplo acima para arquitetura i386.

Faça copia de um dos canais acima, nomeie de forma que termina com .channel, use seu editor preferido para alterar o conteúdo, para escolha do que vai acrescentar em "components =" e para qual arquitetura deseja criar o canal, navegue em;

http://dl.atrpms.net/

Faça as alterações de URL, componentes, nomes do canal e outros ajustes, já tem esta explicação com mais detalhes em outro tópico, procure no menu deste documento pela opção;

Alterar canal e exemplo de atualização do KDE no SUSE 10

Siga os passos indicados lá que é fácil criar outros canais.

Na interface gráfica, alguns pacotes consultados as informações estão no idioma local.

Fedora 4

Procure pelo rpm do smart neste endereço.

http://dl.atrpms.net/fc4-i386/atrpms/stable/

Para instalar siga os mesmos passos para Fedora 5

CentOS 5.0

Ambiente utilizado, CentOS 5.0 arquitetura x86_64, instalado com perfil KDE para estação de trabalho e servidores.

Consegui instalar via rpm com a opção --nodeps, instala mas não cria canais.

  mkdir /tmp/smart
  cd /tmp/smart
  wget http://dl.atrpms.net/all/smart-0.50-45.0.el5.x86_64.rpm
  rpm -ivh --nodeps smart-0.50-45.0.el5.x86_64.rpm

CentOS 4.3

Não encontrei pacotes específicos do CentOS x86_64, encontrei para RH, arquitetrua i386 e x86_64, procure pelo rpm compatível com sua instalação;
http://www.atrpms.net/dist/el4/smart/

Tem muito rpm RedHat, rpm para FC, RH, arquitetura i386 e x86_64
http://dl.atrpms.net/

alguns mirror
http://mirrors.csol.org/CentOS/4.3/updates/

Instalar smart, tentei mas deu erro e desisti porque requer python 2.4 e na distro tem o 2.3, segue os passos que tentei, baixar o pacote compatível com arquitetura x?86 ou x86_64, comandos que utilizei para instalar smart em uma instalação do CentOS 4.3 - x86_64 (64 bits),

como root em um console;

  cd /tmp
  mkdir smart
  cd smart
  wget http://dl.atrpms.net/all/smart-0.41-26.el4.at.x86_64.rpm
  yum install smart-0.41-26.el4.at.x86_64.rpm
  
  # retorna erro, não resolve diversas dependencias, entre elas;
  Error: Missing Dependency: python-abi = 2.4 is needed by package smart
  
  # ao tentar instalar o pacote (python-abi), encontra a versão 2.3 e não a 2.4 requerida 
  pelo smart, instala este pacote.
  ---> Package python.x86_64 0:2.3.4-14.2 set to be updated

Parei por aqui, desisti desta versão 4.3 do CentOS x86_64, vou aguardar uma nova versão ou atualizarem o python.

No FC5 instalou sem problemas, veja tópico sobre ele neste documento.

SUSE 10.2

Criar canais smart e dicas.
http://my.opera.com/Ricardo%20Belfiglio/blog/show.dml/647105

SUSE 10.1 - i386

Instalar o gerenciador de pacotes smart, para uso em modo texto e smart-gui em interface gráfica, os pacotes do smart estão no CD de instalação do SUSE 10.1, pode instalar a qualquer momento, requer o CD de instalação ou yast configurado para usar repositórios da internet, como root no console execute ou copie e cole uma por uma as linhas abaixo;

  yast -i smart
  
  yast -i smart-gui
  
  smart install http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.1/RPMS/i686/smart-0.42-13.guru.suse101.i686.rpm -y
  
  smart update && smart upgrade smart
  
  Prontinho para uso em modo texto,  para usar interface gráfica instale o pacote smart-gui.
  
  smart intall smart-gui 
  
  smart update && smart upgrade smart

Instalar smart com os pacotes do CD / DVD facilita na instalação porque resolve as dependencias mas não cria novos canais, cria somente o canal (rpm-sys) com os pacotes já instalados na maquina. A versão atualizada já adiciona canais extras, portanto pode instalar o pacote do CD e atualizar ou simplesmente instalar diretamente com pacote atualizado.

Os pacotes atualizados do smart estão em.

http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.1-i386/RPMS.suser-guru/

Caso falhe a atualização, substitua a URL ou nome do pacote nas linhas de comando que iniciam com "smart install", acesse o endereço acima, localize a versão mais recente, clique com botão auxiliar sobre o pacote atual, selecione copiar link, cole na linha de comando.

Depois de atualizado, quando executar o smart pela primeira vez vai pedir confirmação para adicionar os canais, confirme uma por uma, confirme também a importação da chave gpg.

If you answer "Yes" all other packages signed with this key will be installed automatically. (s/N): S

Prontinho para uso em linha de comando ou interface gráfica.

Executar smart em interface gráfica, exemplos a partir do desktop KDE.

menu K -> sistema -> Configuração -> Smart (gerenciador de pacotes)

a partir da linha de comando -> smart --gui

Alt+F2 ou Menu K -> executar comando -> smart-gui

Mantenha a base de dados atualizada, sempre que atualizar o pacote smart precisa atualizar também a base de dados dele, clique no ícone atualizar ou execute na linha de comando "smart update" demora alguns minutos mesmo em banda larga, depois disto está prontinho para instalar novos pacotes ou atualizar seu sistema, a escolha é sua, via linha de comando ou interface gráfica.

Alguns canais estão desabilitados, estão com flag disabled = yes, como exemplo os canais que apontam para repositórios de pacotes do KDE 3.5.3, se preferir pode habilitar como também adicionar novos canais para incluir novos pacotes e repositórios da internet, explore a interface gráfica ou procure neste documento o tópico sobre comandos e dicas.

Com smart atualizado tem vários canais apontando para diversos servidores de pacotes da internet. Mas tem muito mais, a qualquer momento pode adicionar novos servidores de pacotes (canais), smart permite incluir servidores de pacotes apt, yast e outros. Neste documento tem mais detalhes sobre manutenção de canais.

Não use mais de um gerenciador de pacotes simultaneamente, também não inicie simultaneamente em mais de um console, não use simultaneamente interface texto e gráfica, sempre um única seção, antes de abrir em outra interface, fecha a anterior, pode criar canal em modo texto e trabalhar em ambiente gráfico e vice-versa.

Procurando uma maneira de simplificar e facilitar a criação de canais, o caminho mais prático que achei; instalar smart via yast, atualizar o smart e depois criar novos canais.

O exemplo indicado abaixo serve como referencia e modelo, use seu editor preferido para alterar, neste documento tem mais dicas e opções sobre criação e manutenção de canais.

Linha de comando para adicionar alguns canais específicos para o SUSE 10.1 arquitetura i386 ... i686 (32 bits).

adicionar repositório apt, todos os componentes de

  baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.1-i386/
  
  components = base extra kernel-of-the-day kolab kraxel mozilla non-oss 
  packman-i686 packman rpmkeys samba3 security-prpm security suse-people 
  suse-projects suser-guru suser-jengelh suser-oc2pus suser-rbos update-prpm 
  update usr-local-bin wine``

A linha de comando abaixo instala todos estes componentes, para facilitar a organização, criei um canal para cada componente, assim pode editar para remover ou desabilitar o canal (componente) via linha de comando, baixe este modelo e edite os canais desejados ou para instalar sem alterações, copie e cole no console do root.

  smart channel --add http://200.204.198.164/zago/smart/suse101-i386-apt-gwdtodos.channel -y
  smart update

Depois de adicionar este canal e atualizar a base de dados, pode usar tanto em modo texto ou interface gráfica, pode instalar diversos pacotes que não fazem parte do CD de instalação, clique no ícone de pesquisa (lupa) em ambiente gráfico ou use (search) em modo texto, exemplo de pesquisa em modo texto, procurando por "flash", resultado parcial da pesquisa;

  suse101-ecs741:~ # smart search flash
  
  RealPlayer - RealPlayer 10 for Linux
  flash-player - Macromedia Flash Plug-In

Instalar plug flash, basta colar no console

smart install flash-player -y

Adicionar ISO do DVD de instalação, montada ou copia do conteúdo dela em /mnt/isolocal

  smart channel --add http://200.204.198.164/zago/smart/s101isolocal.channel -y
  smart update

smart update atualiza a base de dados, pacotes disponíveis, nova versão de pacotes e outras informações, sincroniza a lista de pacotes da maquina com a dos servidores. Este comando é obrigatório depois de qualquer alteração em algum canal, altamente recomendável antes de qualquer atualização ou instalação de pacotes. Procure manter atualizado para evitar erros na instalação ou atualização de pacotes.

Veja indicação no final deste documento (smart-channel.html)

SUSE 10 - instalar smart gerenciador de pacotes

Interface gráfica, instale também o pacote smart-gui, executar a partir do KDE. MenuK, executar comando ou pelo atalho ALT+F2, na caixa de dialogo smart e OK.

Escolha a versão apropriada ao seu sistema, SUSE tem versão especifica para 32 e 64 bits, instale o pacote compatível com a arquitetura em uso para evitar problemas, na instalação do pacote do smart já configura automaticamente a lista de servidores e a base de dados correspondente ao pacote instalado, estes servidores tem que ser compatível com sua arquitetura, em instalações de 64 bits (x86_64 instale o pacote do smart encontrado neste endereço;

http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.0/RPMS/x86_64/

Use CTRL+F e procure por smart, em 09/03/2006 o pacote estava com este nome; smart-0.41-13.guru.suse100.x86_64.rpm

portanto o endereço completo para download via wget fica assim;

  wget http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.0/RPMS/x86_64/smart-0.42-13.guru.suse100.x86_64.rpm

Os demais comandos do smart, procedimentos de instalação e uso do smart é igual nas duas versões, a diferença está somente no endereço de download e nome do pacote, em instalações x86_64 basta fazer o download do pacote indicado acima e ajustar as linhas de comando abaixo para usar o nome do pacote do smart correspondente a x86_64, copie a linha de comando para seu editor de texto e altere o nome do pacote para ajustar conforme o download.

Na instalação padrão não aparece smart na lista de pacotes do Yast, configurar Yast somente para instalar este pacote pode dar mais trabalho do que baixar, prefiro baixar e salvar em maquina local, para as demais instalações basta fazer copia via ssh para a nova instalação, considere salvar este arquivo em CD ou na rede para efetuar copias para as novas instalações, a seguir, passo a passo para baixar e instalar sem alterações no Yast.

Acesse; http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.0/RPMS/i686/

Neste endereço tem os pacotes do smart, a cada atualização altera o nome do arquivos, em 03/09/2006 tinha esta versão .

  smart-0.42-12.guru.suse100.i686.rpm                03-Sep-2006 00:58   459k  
  smart-gui-0.42-12.guru.suse100.i686.rpm            03-Sep-2006 00:58    76k  

Use CTRL+F para localizar e fazer download do pacote smart-0.42-12.guru.suse100.i686.rpm ou versão mais recente, salve na maquina local, pelo konqueror navegue até onde salvou e clique sobre o arquivo para iniciar a instalação, clique em "Install Package with YaST" que automaticamente chama o Yast, resolve as dependências e pede os CD, ou se preferir pela linha de comando, abrir um konsole e tornar root, linha de comando para baixar via wget;

  wget http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.0/RPMS/i686/smart-0.42-12.guru.suse100.i686.rpm

Ocorrendo erros pode ser problemas com acesso á internet ou na atualização alterou o nome, nestes casos acesse a URL para pegar o nome correto ou baixar via brownser.

Resumo dos comandos, como root, no konsole, copie e cole estas linhas, uma por uma e feche konqueror após concluir a instalação ( segunda linha);

  wget http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.0/RPMS/i686/smart-0.42-12.guru.suse100.i686.rpm
  konqueror smart-0.42-12.guru.suse100.i686.rpm
  smart update
  smart install python-gtk -y
  smart upgrade smart -y
  smart update

A seguir o mesmo procedimento acima, porém com mais dicas e detalhes.

Instalar via linha de comando pode chamar o konqueror+smart;

konqueror smart-0.42-12.guru.suse100.i686.rpm

o resultado é o mesmo que abrir o konqueror para depois navegar até o local onde salvou o download do Smart e dar um clique para iniciar a instalação.

Evite instalar tudo via linha de comando, em algumas instalações este procedimento tem dado errado, caso queira tentar, como root dentro do diretório onde salvou o download do smart;

  yast --install smart-0.42-12.guru.suse100.i686.rpm
  yast --install python
  smart update
  #a proxima linha instala a interface gráfica do smart, portanto opcional.
  smart install python-gtk -y

Na instalação do python requer o CD1 e CD3 ou o Yast configurado para buscar na net.

A falta do pacote python impede a utilização do smart em modo texto, também não consegue atualizar do banco de dados do smart e qualquer comando no smart vai falhar e exibir esta mensagem de erro,

  error: While using /etc/smart/channels/suse-apt-security-gwdg.channel: 'rpm' python module is not available
  error: 'rpm' python module is not available

Caso ocorra erros, faça a instalação somente do smart via konqueror que automaticamente chama o Yast e resolve a dependência, somente depois da instalação sem erros, poderá atualizar e utilizar o smart, execute como root no console.

  smart update
  smart install python-gtk -y

O pacote python-gtk é requerido somente para uso via interface gráfica (GUI), quem vai utilizar somente em modo texto não precisa instalar este pacote.

Concluída a instalação o smart precisa atualizar a lista de pacotes, portanto o primeiro comando a executar deve ser a atualização, quando instalada a interface gráfica, pode dar um clique em atualizar ou na linha de comando, execute;

smart update

Prontinho para usar em linha de comando, em ambiente gráfico precisa instalar também o pacote python-gtk, pode fazer pelo Yast ou na linha de comando execute;

smart install python-gtk -y

Prontinho para chamar smart também em ambiente gráfico, como root no console, execute smart --gui, pode executar também a partir de konsole remoto em conexão via ssh com a opção -X.

Aproveite e atualize o smart periodicamente, atualize o pacote do smart e também a base de dados, execute;

  smart upgrade smart -y
  smart update

Quando falhar a interface gráfica, mesmo depois de instalar os pacotes acima e atualizar, retornando mensagem de erro semelhante a esta;

  linux:~ # smart --gui
  error: Interface 'gtk' not available

Já ocorreu em algumas instalação, não lembro os procedimentos que levou a isto, a solução foi instalar/executar;

smart install smart-gui -y

SUSE 10 x86_64 - resumo de comandos

  cd /tmp
  wget http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.0/RPMS/x86_64/smart-0.42-12.guru.suse100.x86_64.rpm
  konqueror smart-0.42-12.guru.suse100.x86_64.rpm
  smart update
  smart upgrade smart -y
  smart update
  # Instalar interface gráfica
  smart install smart-gui -y

Os demais comandos e dicas, siga o tópico sobre SUSE 10, a diferença entre as duas versões da distro está somente no endereço dos pacotes, evite instalar pacotes de arquitetura diferente.

Mandriva 2006

Ambiente, versão em 3 CD, Mandriva Linux 2006 - free

Tem os rpm do smart no CD de instalação, instalação com perfil KDE para estação de trabalho não incluem os pacotes do smart.

Execute mcc e procure pelo pacote do smart ou via linha de comando execute.

  urpmi smart
  smart update
  
  smart --version
  smart 0.39

Achei muito estranho, aponta para canais Cooker e Contrib, a maioria falha, não são oficiais e não adiciona novos pacotes. Qualquer dia procuro entender isto e criar canais, primeiro preciso descobrir endereços dos repositórios.

Repositório contrib
ftp://ftp.ciril.fr/pub/linux/mandrakelinux/devel/cooker/cooker/media/contrib/

Ubuntu Kubuntu

Uso do smart package nas versões kubuntu 6.10 e 7.04.

Kubuntu 7.04

Na versão 7.04 não fiz alterações depois de instalado no HD, instalei o smart via aptitude.

  aptitude update
  aptitude install smartpm
  smart update

Prontinho, smart instalado e funcionando, retornou o resultado. "Canais possuem 20274 pacotes novos."

instalou a versão para uso em modo texto e interface gráfica.

Para chamar a interface gráfica execute "smart --gui", para executar remotamente, faça a conexão via ssh com a opção -X e chame a partir do konsole remoto.

kubuntu 6.06

Na versão 6.06 depois de instalado em HD, como root editei o sources.list para remover todos comentarios de repositórios.

A seguir resultado da instalação na versão 6.10, os comandos são os mesmos na versão 7.04

Kubuntu 6.10 (Edgy Eft)
http://cdimage.ubuntu.com/kubuntu/dvd/current/

root@zago-desktop:/etc/apt# cat sources.list
  deb http://br.archive.ubuntu.com/ubuntu/ edgy main restricted
  deb-src http://br.archive.ubuntu.com/ubuntu/ edgy main restricted
  deb http://br.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
  deb-src http://br.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
  deb http://br.archive.ubuntu.com/ubuntu/ edgy universe
  deb-src http://br.archive.ubuntu.com/ubuntu/ edgy universe
  deb http://br.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
  deb-src http://br.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
  deb http://security.ubuntu.com/ubuntu edgy-security main restricted
  deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted
  deb http://security.ubuntu.com/ubuntu edgy-security universe
  deb-src http://security.ubuntu.com/ubuntu edgy-security universe

Depois de alterado, no konsole do root executei.
  aptitude update
  aptitude install smartpm
  smart update
Prontinho, smart instalado e funcionando.

smart search smartpm

  smartpm - An alternative package manager that works with dpkg/rpm
  smartpm-core - An alternative package manager that works with dpkg/rpm

smart info smartpm

  Nome: smartpm
  Versão: 0.42-0ubuntu1
  Prioridade: 0
  Grupo: admin
  Tamanho Instalado: 332.0kB
  URLs de referência:
  Flags:
  Canais: DEB System; edgy - universe
  Sumário: An alternative package manager that works with dpkg/rpm
  Descrção:
   The Smart Package Manager project has the ambitious objective of
   creating smart and portable algorithms for solving adequately the
   problem of managing software upgrading and installation. This tool
   works in all major distributions (APT, APT-RPM, YUM, URPMI, etc).
   .
   This project is in beta testing. Please, understand that bugs are
   expected to be found at that stage, and there are features that still
   must be implemented in the forthcoming future.
   .
   This package contains the GTK2 frontend for Smart.

Páginas relacionadas ao smart no ubuntu
http://planeta.ubuntubrasil.org/post/776

Debian

Páginas relacionadas ao smart no Debian
http://packages.debian.org/unstable/source/smart

Slack

Páginas relacionadas ao smart no Slack
http://www.jeepster.org.uk/paks/smart/

Dicas iniciais...

Smart tem interface gráfica e modo texto (linha de comando), pode usar alternadamente mas nunca as duas simultaneamente, nem abrir mais de uma sessão em terminais ou conexões diferentes, quando se sabe o comando fica mais prático e rápido fazer pela linha de comando, configurações e informações sobre pacotes fica mais fácil pela interface gráfica, explore as duas formas para tirar melhor proveito, a base de dados e configurações são as mesmas nos dois ambientes.

Na linha de comando tem duas formas de uso, comandos diretamente na linha de comando precedidos de smart ou entrar em modo shell e executar os comandos smart.

smart sem parâmetro algum retorna um texto de ajuda.

Obter mais informações, na linha de comando execute smart --help, detalhar ainda mais, use smart comando --help, onde comando seja um dos listados no help, alguns resultados tem exemplos, como em smart channel --help tem indicação do exemplo para apt-rpm;

  smart install --help
  smart channel --help
  smart channel --help-type apt-rpm
  smart channel --show

Configuração em geral, criar canais e outras diretivas de configurações acho que o melhor é pela interface gráfica, muito mais fácil e intuitiva.

Em modo texto não encontrei forma amigável para editar arquivos de configuração, tem como fazer pela linha de comando, achei meio complicado, tem algumas anotações no final deste documento, consulte o help para mais detalhes.

Veja a documentação disponível em /usr/share/doc/packages/smart/

Chamar a interface gráfica, na linha de comando execute; smart --gui, usar em modo shell, execute; smart --shell, em modo shell ele muda o cursor para smart>, dentro do smart (após chama-lo com smart --shell), para instalar pacotes execute; install <nomedopacote>, vale para os demais comandos, veja o resultado de help, install help observe que neste modo não usa smart no inicio da linha, o resultado é o mesmo, a diferença é entrar no smart para dar os comandos ou executar smart para cada comando, para sair do smart, voltar ao bash, digite: quit

Comandos mais utilizados

smart --gui chama interface gráfica a partir da linha de comando, muito fácil, intuitiva e amigável.

ou pelo atalho ALT+F2, (executar comando) na caixa de dialogo smart e OK.

Conheça também as opções em linha de comando, ideal em administração remota, conexões lenta, script ou quando não tem ou falha o ambiente gráfico.

Alguns dos comandos mais utilizados (na minha opinião), uso em shell (linha de comando).

Lembre que instalar programas requer poderes de root, no shell torne root com su - ou configure o usuário no sudo.

smart sem parametro ou smart --help exibe o help (ajuda, manual), obter mais ajuda sobre comandos específicos, execute smart commando --help, exemplos; smart install --help, smart channel --help.

Não pedir confirmação, acrescente -y no final da linha de comando.

Atualizar somente um pacote, exemplo para atualizar o próprio smart,

smart upgrade smart -y

smart update atualiza a base de dados do smart, obrigatório após qualquer alteração no smart, altamente recomendável periodicamente ou antes de instalar algum pacote, serve para sincronizar as informações local com os servidores, atualiza nomes e versões dos pacotes, não instala nem atualiza pacotes, somente atualiza o banco de dados com informações dos pacotes, evita erros na tentativa de instalar pacotes desatualizados.

Considere o seguinte ambiente, quando executar comandos de pesquisa, atualizar ou instalar novos pacotes, o smart consulta um banco de dados local contendo informações sobre os pacotes, isto torna muito mais rápido que pesquisar diversos servidores na internet.

Considere que na instalação ou atualização de pacotes, o smart pega o nome e versão no banco de dados local, usa esta informação na procura e download do pacote.

Considere que os pacotes estão em constante atualização, a todo momento os servidores de pacotes são atualizados, tanto com novas versões como novos lançamentos de pacotes.

Em cada servidor de pacotes tem um arquivo contendo a lista atualizada de pacotes com informações para uso do smart

Atualizar a base de dados com (smart update) serve exatamente para atualizar as informações da maquina local com os servidores de pacotes. Consulta o arquivo de informação de cada canal, quando detectar que houve mudança no servidor, indica que ocorreu alguma modificação depois da ultima atualização, neste caso faz o download deste arquivo de informações para atualizar o banco de dados local, ou seja, atualiza as informações local sobre pacotes e versões.

Execute nesta ordem e formato;

  smart upgrade smart -y
  smart update
  ou 
  smart upgrade smart -y && smart update

Pesquisar na lista de pacotes, use smart search nome-do-pacote, exemplos de algumas pesquisas;

  smart search openoffice
  smart search squid
  smart search xen

Pesquisar informando somente parte do nome do pacote, pesquisa em qualquer parte do nome, lembre que os nomes dos pacotes estão em Inglês;

  smart search '*game*'
  smart search '*office*'
  
  Refine a pesquisa com grep.
  
  smart search '*office*' | grep BR

smart info nome-do-pacote Obtendo informações detalhadas do pacote

  smart info squid
  smart info openoffice

Veja também os resultados com --explain, install --explain nome-do-pacote

  smart install apache --explain
  install --explain xen

smart install nome-do-pacote instala programas (novos pacotes)

smart upgrade nome-do-pacote atualizar pacote já instalado

Instalar pacote diretamente de servidor web, informe a URL ou IP + caminho + pacote, considere servidor web também servidores apache na rede local, não precisa configurar o canal no smart, na linha de comando use este formato.

  smart install http://www.dominio.com/diretorio/pacote.rpm
  smart install ip/caminho/pacote.rpm

Chamar interface gráfica informando qual pacote deseja instalar, ideal quando se quer obter mais informações do pacote ou alguma seleção, exemplo de linha de comando para o sarg.

smart --gui install sarg

Instalando multiplos pacotes, alguns exemplos de linha de comando em modo shell e gui, procurando por pacotes que contenham "game" no nome;

  smart --gui install '*game*'
  smart install '*game*'

selecionado mais de um pacote;

  smart --gui install pacote1 pacote2 pacote3
  smart install pacote1 pacote2 pacote3

Atualizar todo o sistema, smart upgrade, atualiza todos os pacotes da instalação para a ultima versão, tente disparar este comando e não usar o micro, demora muito, depende do perfil e do que falta atualizar, na primeira atualização em instalação com perfil KDE faz download de mais ou menos 500MB.

smart search nome-do-pacote, funciona como no apt, exemplo de resultado no SUSE 10, pesquisa sobre squid retorna;

  linux:~ # smart search squid
  Loading cache...
  Updating cache...                     ################################################## [100%]
  
  calamaris - A Report Generator
  netselect - Choose the Fastest Server automatically
  sarg - Squid Analysis Report Generator
  squid - Squid WWW proxy server
  squid-beta - Squid V3.0 WWW Proxy Server (new version)
  squid-beta-debuginfo - Debug information for package squid-beta
  squid-debuginfo - Debug information for package squid
  squidGuard - filter plugin for squid
  squidGuard-debuginfo - Debug information for package squidGuard
  transconnect - Allows you to access the internet through a HTTP proxy

smart channel --show lista todos canais

smart channel --edit nome-do-canal

Neste modo de edição o smart chama o editor "vi", portanto os comandos de edição são os mesmos do editor "vi". Resumo de talhos no "vi" pressione INSERT para editar, (SHIFT+ESC) para entrar em modo comando, (SHIFT+ESC :wq) grava e sai, (SHIFT+ESC :q!) abandona edição e sai sem salvar. Remover linhas, em modo comando pressione dd.

Pode editar o canal via interface gráfica ou usar seu editor de texto preferido na edição dos arquivos (canais) em /etc/smart/channels/

smart channel --add adiciona novos canais, veja tópico sobre criação de canais.

smart channel --add http://200.204.198.164/zago/smart/osuse101-386-apt-gwdg.channel

Neste tutorial e na continuação dele smart-channel.html, tem varios exemplos como este acima, são minhas colinhas, em lugar de executar este comando, acesse via navegador ou baixe via wget, no diretório onde salvou, edite modifique conforme sua instalação, depois adicione o canal a partir do arquivo na própria maquina, procure manter o padrão em /etc/smart/channels/ ou informe o caminho quando usar local diferente, execute dentro do diretório como neste exemplo;

smart channel --add ./osuse101-386-apt-gwdg.channel

smart mirror --add adiciona novos mirrors (espelhos)

Desabilitar canal, --disable inclui a diretiva disabled = yes na configuração do canal, depois da alteração execute update e veja o resultado com --show, exemplos de linha de comando.

smart channel --disable nome-do-canal

smart channel --disable suse101-386-apt-gwdg

Habilitar canal, troque desable por enable, exemplo para desfazer o comando desable do canal acima

smart channel --enable nome-do-canal

smart channel --enable suse101-386-apt-gwdg

Resumo, via interface gráfica basta um clique na opção. Via linha de comando pode executar os comandos acima ou via editor, onde desable acrescenta no canal (disabled = yes), tanto faz com o comando acima ou editando e acrescentando diretamente no canal, enable remove esta linha do canal indicando, da mesma forma, pode usar o exemplo de comando acima ou editar o canal e remover esta linha via editor.

Atualização automática.

Crie um script com a lista de pacotes que deseja manter atualizado, exemplo de script para atualizar o Apache e ssh.

cat atusshweb

  #!/bin/bash
  smart update
  smart upgrade apache2 -y
  smart upgrade openssh -y

Torne executável e acrescente no crontab ou execute diretamente na linha de comando.

configurações

Arquivos de configurações em: /var/lib/smart

Prioridade do canal, pacote, mirror....

smart priority --help

smart flag --help

Manter o download dos pacotes instalados.

smart config --set remove-packages=false

Esta opção =false salva e mantem os pacotes em disco, mesmo depois instalar ou atualizar pacotes, o download dos rpm continuam armazenados no diretório.

/var/lib/smart/packages

Como os rpm continuam em disco, pode copiar para outra instalação, criar repositório local para aplicar em outras instalações. Cuidado com o espaço em disco.

Para desabilitar esta função.

smart config --set remove-packages=true

=true remove os rpm no final da instalação, salva o download em /var/lib/smart/packages durante a instalação, quando trava ou reinicia o processo ele aproveita o download, mas apaga os rpm depois de instalar o pacote.

Criar CD de atualização - reaproveitar rpm de outra instalação

Atualizar diversas intalações com mesmo pefil fica mais prático atualizar uma delas e aproveitar o download do pacotes para atualizar as demais.

Para manter os download dos pacotes, antes de inticiar a atualização execute.

smart config --set remove-packages=false

Agora atualize e instale os pacotes, depois de terminada a atulização, siga os passos seguintes para criar CD de atualização.

Na instalação vou criar um repositório apt, serve tanto para smart como apt, portanto o canal do smart deve ser criado como sendo um repositório apt, na maquina que vai criar o repositório apt precisa instalar o pacote apt4rpm

smart install apt4rpm -y

Os comandos a seguir faz copia dos rpm para um diretório do servidor apache, cria uma repositório apt, por ultimo cria imagem ISO que pode gravar em CD, copiar para um diretório na mquina que deseja atualizar, ou simplesmente, nas demais maquinas basta criar canais apt apontando para este servidor, aplique a opção que melhor lhe atende.

OBS. requer servidor apache instalado e rodando, pode ser qualquer distro ou versão, pode criar os pacotes em outra maquina, copiar as estrutura de diretórios e etc..., veja tutoriais sobre apache.
http://www.zago.eti.br/apache.html

  mkdir -p /srv/www/htdocs/rpmextras/RPMS.meurpm
  cp /var/lib/smart/packages/* /srv/www/htdocs/rpmextras/RPMS.meurpm
  chmod -R 755 /srv/www/htdocs/rpmextras/RPMS.meurpm/*
  cd /srv/www/htdocs/rpmextras
  # remover diretório base quando for atualização
  # rm -rf /srv/www/htdocs/rpmextras/base
  genbasedir `pwd`

Atualizar este repositório com novos pacotes (novos download ou atualizações), basta remover o diretório base ( rm -rf /srv/www/htdocs/rpmextras/base) e executar novamente os comandos acima.

Depois da copia dos pacotes de (/var/lib/smart/packages), para outro local, não precisa manter os pacotes neste diretório, pode limpar o cache com o comando

smart clean

Log do comando genbasedir `pwd`
  linux-server:/srv/www/htdocs/rpmextras # genbasedir `pwd`
  Creating base directory... done
  Components: meurpm
  Processing pkglists... meurpm [done]
  Processing srclists... [done]
  Updating component releases... meurpm/usr/bin/genbasedir: line 434: countpkglist: command not found
   [done]
  Creating global release file... [done]
  Appending MD5Sum... meurpm [done]

Prontinho, mesmo com a mensagem de erro acima foi criado o repositório apt e sub-diretório base. Agora pode criar a ISO e gravar o CD, copiar este diretório para outro servidor web, criar link simbolico se utilizou outro diretório, tem outras opções, segue alguns exemplos de uso deste repositório.

ls /srv/www/htdocs/rpmextras

base RPMS.meurpm

Criar canal smart nas demais maquinas da rede local, funciona também na própria maquina, para utilizar este repositório na maquina (servidor) com IP 192.168.1.205

  smart channel --add http://200.204.198.164/zago/smart/suse101-weblocal-extras.channel
  smart update

Log do comando smart update.

  linux-server:/zago # smart update
  Carregando o cache...
  Atualizando cache...                        ########################################################## [100%]
  
  Buscando informaçõess para 'minha selecao de rpm -'...
  -> http://192.168.1.205/rpmextras/base/release
  release                                     ########################################################## [  2%]
  -> http://192.168.1.205/rpmextras/base/release.meurpm
  release.meurpm                              ########################################################## [  5%]
  -> http://192.168.1.205/rpmextras/base/pkglist.meurpm.bz2
  pkglist.meurpm.bz2                          ########################################################## [  8%]

Criar imagem ISO.

  cd /tmp
  mkisofs -r -o suseatual.iso /srv/www/htdocs/rpmextras

Como utilizar esta ISO em outra instalação, pode gravar em CD ou DVD, quando tem espaço de sobra no HD detino o mais prático é copiar a ISO, montar e criar canal smart, neste exemplo fiz copia desta ISO mais a ISO do DVD de instalação para /tmp

SUSE-Linux-10.1-GM-DVD-i386.iso suseatual.iso

Montando as duas imagens.

  mkdir -p /mnt/isolocal
  mkdir -p /tmp/rpmextras
  mount -t iso9660 -o loop /tmp/SUSE-Linux-10.1-GM-DVD-i386.iso /mnt/isolocal
  mount -t iso9660 -o loop /tmp/suseatual.iso /tmp/rpmextras
  
  Criar canais smart para buscar pacotes no diretório local (iso montada na maquina local).
  
  smart channel --add http://200.204.198.164/zago/smart/suse10-aptlocal-extras.channel
  smart channel --add http://200.204.198.164/zago/smart/s101isolocal.channel
  # mantenha o canal rpm-sys e estes acima, pode comentar/desabilitar os demais canais que utilizam a net 
  smart chanell --edit 
  smart update

Como ficou meus canais configurados para usar ISO local.

  [rpm-sys]
  type = rpm-sys
  name = RPM System
  
  [s101isolocal]
  type = yast2
  name = DVD de instalar OPENSUSE 10.1 via ISO local
  baseurl = /mnt/isolocal
  
  [suse10-aptlocal-extras]
  type = apt-rpm
  name = minha selecao de rpm - nao use acentos aqui
  baseurl = /tmp/rpmextras/
  components = meurpm

prioridade de canal

No manual consta

      priority       - Prioridade padrão atribuida a todos os canais
                       disponíveis neste canal (0 se não especificada). Se
                       exatamente o mesmo pacote estiver disponível em
                       mais de um canal, a maior prioridade será
                       utilizada.

Formato da linha de comando

smart channel --set mychannel priority=-100

Aceita valores com sinal (-) e sem sinal, veja o resultado com e sem sinal.

smart channel --set suse101-weblocal-extras priority=100

  [suse101-weblocal-extras]
  type = apt-rpm
  name = minha selecao de rpm -
  priority = 100
  baseurl = http://192.168.1.205/rpmextras/
  components = meurpm

smart channel --set suse101-weblocal-extras priority=-100

  [suse101-weblocal-extras]
  type = apt-rpm
  name = minha selecao de rpm -
  priority = -100
  baseurl = http://192.168.1.205/rpmextras/
  components = meurpm

script - instalar pacotes de uma lista arquivo.txt

Tenho varias instalações personalizadas, deparei com um problema, replicar estas instalações sem fazer copia de instalação, a melhor solução seria instalar pacotes a partir de uma lista em arquivo.txt.

Mantenho um script com diversas linhas de comando, altera idioma, canais próprias para repositório local e outros ajustes, como é muito longo, achei melhor colocar aqui somente os tópicos principais, minha colinha para usar via web.

Primeiro passo, criar arquivo com a lista de pacotes, pode editar arquivo.txt ou criar com a lista de pacotes uma instalação personalisada.

Observe e compare os resultados destes comandos em uma instalação do SUSE 10.1 com perfil KDE sem instalação de pacotes adicionais. para listar somente os pacotes instalados, acrescentei (disabled = yes) em todos canais, exceto no canal ([rpm-sys]), em uma instalação de testes faça

smart channel --edit

acrescente em cada canal, depois do nome do canal.

disabled = yes

Sempre que alterar canais precisa executar (smart update), conte o numero de pacotes instalados.

Resultado com somente rpm-sys habilitado

  smart search | wc -l
  735

Com todos os canais habilitados, canais default criados pela versão 0.42-9 no SUSE 10.1

  smart search | wc -l
  7310

Faça testes, compare o resultado antes e depois de instalar algum pacote.

Salvar nome dos pacotes instalados em arquivo, nomeie de forma a identificar os arquivos, nomeie com nome de usuário, maquina e etc....

smart search | cut -d" " -f1 >> /tmp/instaladomod.txt

Remover as 3 primeiras linhas do arquivo

sed -i '1,3d' /tmp/instaladomod.txt

Copiar arquivo /tmp/instaladomod.txt para outra maquina. Na instalação que deseja atualizar já tem pacotes instalados desta lista, precisa eliminar da lista os pacotes já instalados na maquina local, pode editar o arquivo na unha com seu editor preferido, ou usar o script indicado no final deste tópico, lembre de conferir se tem os mesmos canais habilitados para evitar falhas na procura no pacote, o que importa é o smart achar em seus canais o nome dos pacotes indicado no arquivo instalar.txt.

script para atualizar smart e instalar todos os pacotes listados em /tmp/instalar.txt

  #!/bin/bash
  # seus comandos aqui, para testar UID e outras verificações.
  smart update
  while read LINHA ; do
     # seus comandos aqui
      smart install $LINHA -y
  done < /tmp/instalar.txt

Ajuste a seu modo, acrescente linhas de comando para substituir ou copiar .conf de outro local, linhas de comando para ajustar configuração....

Exemplo de um arquivo instalar.txt, com a lista de pacotes para instalar, um nome por linha, pode usar este mesmo formato para atualizar pacotes (update).

  cat /tmp/instalar.txt
  flash-player
  gxine
  Mplayer
  RealPlayer
  vlc
  evolution

Resumo zago, prefiro manter um arquivo com as linhas de comando para copiar e colar, basta colar no konsole do root e executar smart update, claro que deve ajustar para os canais em uso em sua instalação, mantenho um script personalisado para cada perfil, segue como exemplo, copia das linhas de comando para desabilitar/habilitar canais criados na instalação da versão 0.42-10.

  #desabilitar canais, acrescentar (disabled = yes)
  smart channel --disable guru
  smart channel --disable packman
  smart channel --disable suse-non-oss
  smart channel --disable suse
  
  
  smart update
  smart search | cut -d" " -f1 >> /tmp/listarpm.txt
  sed -i '1,3d' /tmp/listarpm.txt
  
  #habilitar canais, remover (disabled = yes)
  smart channel --enable guru
  smart channel --enable packman
  smart channel --enable suse-non-oss
  smart channel --enable suse
  smart update

Criar arquivo novo contendo somente nomes de pacotes que tem a mais no instaladomod.txt, pegar somente as linhas existentes no instaladomod.txt e não repetidas no listarpm.txt, ignorando as demais existentes no listarpm.txt, deve ter alguma forma mais simples, a "gambi" abaixo resolveu meu problema, foi o que lembrei no momento deste teste.

  exemplo onde;
  /home/zago/instaladomod.txt contém a listagem completa dos pacotes que desejo instalar, serve com  referencia, modelo
  /tmp/listarpm.txt  contém uma lista reduzida, lista dos pacotes instalados na maquina que deseja atualizar, lista padrão, reduzida.
  
  diff -y --suppress-common-lines /home/zago/instaladomod.txt /tmp/listarpm.txt  > /tmp/arqtmp.txt
  cat /tmp/arqtmp.txt | awk '{print $1}'  > /tmp/arqtmp1.txt
  cat /tmp/arqtmp1.txt | sed '/^>/d' > /tmp/instalar.txt
  rm -rf /tmp/arqtmp.txt
  rm -rf /tmp/arqtmp1.txt
  cat -A /tmp/instalar.txt

/tmp/instalar.txt tem que estar na mesma maquina onde vai executar o script abaixo, instalar os pacotes a partir desta lista.

  #!/bin/bash
  # seus comandos aqui, para testar UID e outras verificações.
  smart update
  while read LINHA ; do
     # seus comandos aqui
      smart install $LINHA -y
  done < /tmp/instalar.txt

Atualizar uma lista de pacotes (upgrade), basta criar o arquivo com a lista de pacotes que deseja atualizar, um nome por linha, pode executar o script na linha de comando ou agendar no crontab.

  #!/bin/bash
  smart update
  while read LINHA ; do
      smart upgrade $LINHA -y
  done < /tmp/upgrade.txt

Página principal sobre script em geral (FAQ)
http://www.zago.eti.br/script/A-menu-scripts.html

Problemas e soluções

Falha no download, mensagens como servidor não responde ou pacote não encontrado, pode ser problema de conexão com a internet, remoção do pacote no servidor e muitos outros motivos, mais comum é atualização do pacote, isto modifica o nome do pacote no mirror (espelho do servidor de pacotes na internet), considere que o smart pega o nome na base de dados local, portanto, precisa mante-la atualizada para evitar falha na busca do pacote, siga esta dica;

Mantenha o smart e a lista de pacotes atualizada, execute regularmente ou antes de instalar/ atualizar pacotes, como root em um console;

smart upgrade smart -y && smart update

Ou utilize script no crontab.

Tem que executar com poderes de root, como user comum retorna erro como neste exemplo;

  zago@suse64:~> smart update
  erro: Configuração em modo de leitura.

Este mesmo erro acima ocorre quando tenta executar smart simultaneamente, seja em dois consoles ou ambientes diferente, portanto, não tente executar novamente quando ele já está aberto em outro console ou ambiente.

Corrigindo erros, em uma instalação que passou a ocorrer erros na instalação de alguns pacotes, como este;

  suse64:~ # smart install koffce
  Carregando o cache...
  Atualizando cache...            ######################################## [100%]
  
  erro: 'koffce' matches no packages. Suggestions:
  erro:     koffice-1.4.1-10@x86_64
  erro:     koffice-1.4.1-10@i586

Observe que encontrou dois pacotes "koffice", um para i586 e outra para x86_64, ainda não procurei saber se foi erro meu, ter incluindo em algum canal, espelhos de i586 nesta instalação de x86_64 ou se é algum erro nos servidores (mirrors), a solução pode estar na configuração da prioridade do canal, ainda não testei esta alternativa, adotei o caminho mais curto, digitar o nome completo do pacote, neste exemplo a instalação é para x86_64 e a linha de comando ficou assim;

  suse64:~ # smart install koffice-1.4.1-10@x86_64
  Carregando o cache...
  Atualizando cache...            ######################################## [100%]
  
  Calculando transação...
  
  Pacotes instalados (3):
    koffice-1.4.1-10@x86_64                mysql-shared-4.1.13-3@x86_64
    koffice-database-1.4.1-10@x86_64
  
  7.3MB de arquivos de pacotes são necessários. 20.6MB serão utilizados.
  
  Confirma mudanças? (S/n): 

A tecla tab não completa o nome, tem que digitar todo o nome do pcote ou copiar e colar com mouse

Sempre que ocorrer erros ou mensagens estranhas, procure reconstruir a base rpm, execute;

  rpm --rebuilddb 
  
  Veja também o resultado de 
  
  smart check
  
  Depois destes comandos, atualize novamente a lista de pacotes com "update" e para atualizar o sistema "upgrade" 
  
  smart update
  smart upgrade

erro: To enable the keyserver run:

Ambiente, SUSE 101.1 x86_64 com perfil KDE

Ao tentar instalar mplayer retornou esta mensagem.

  suse64:/home/zago # smart install mplayer
  --corta--
  
  Efetuando transação...
  warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 3ab2ce5e
  erro: To enable the keyserver run: "smart config --set keyserver=pgp.mit.edu"
  erro: MPlayer-1.0pre8-5.x86_64.rpm: public key not available

Na própria mensagem indica a solução, precisa importar a chave pgp, execute esta linha de comando.

smart config --set keyserver=pgp.mit.edu

Bastou executar smart novamente para instalar mplayer sem mensagens de erro.

Na versão 0.42-8 não precisa mais deste comando acima, precisa somente confirmar a importação da chave gpg.

If you answer "Yes" all other packages signed with this key will be installed automatically. (s/N): S

Reinstalar smart

A principio, para remover o smart rpm -e smart deve ser o suficiente, para reinstalar siga as dicas no tópico sobre instalação, quando isto falhar, aplique a forma mais radical indicada abaixo, tenha o cuidado de adaptar os comandos para sua distro e versão.

Caso tenha problema com acesso a internet para instalar direto via rpm, faça download e execute o rpm dentro do diretório onde salvou.

FC 5

Fazendo teste um uma instalação do FC5 x86_64, depois de criar e alterar canais diversas vezes, passou a retornar resultados errados, pesquisa sobre novos pacotes retornavam inexistentes para todos, não removia nem instalava mais pacotes, tentei reconstruir a base de dados via rpm e smart e nada.

Resolvi apagar tudo e começar do zero, segue abaixo os passos e comandos que utilizei em março/2006, cuidado que os nomes dos pacotes pode ter mudado com atualizações, se falhar consulte o nome atual no site indicado.

Comandos na ordem que foram executados no FC 5.

  rm -rf /etc/smart
  rm -rf /var/lib/smart
  rm -rf /usr/bin/smart
  rm -rf /usr/lib64/python2.4/site-packages/smart
  rm -rf /usr/lib64/smart
  rpm -e smart-gui
  rpm -e smart
  rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms
  rpm -ivh http://dl.atrpms.net/all/smart-0.41-26.rhfc5.at.x86_64.rpm
  rpm -ivh http://dl.atrpms.net/all/smart-gui-0.41-26.rhfc5.at.x86_64.rpm 
  smart update

Agora tem que criar os canais novamente, veja no tópico sobre FC5, em um ambiente com problema, o roteiro acima resolveu o problema e voltou a funcionar sem problemas.

SUSE 10.1 x86_64

Em uma instalação SUSE 10.1 x86_64, acabei criando canais da arquitetura i386, não lembro o que fiz mas instalou a versão de 32 e 64 bits, depois disto não funcionou mais, qualquer comando retorna.

  suse-x64:~ # smart
  Traceback (most recent call last):
    File "/usr/bin/smart", line 27, in ?
      from smart import init, initDistro, initPlugins, initPsyco
  ImportError: No module named smart

Comandos na ordem que foram executados no SUSE 10.1 x86_64, ajuste a linha de comando (rpm -ivh), atualize a URL, acesse o endereço indicado na linha de comando e pegue o endereço da versão atual do smart, ou baixe e instale a partir do diretório local.

  rm -rf /etc/smart
  rm -rf /var/lib/smart
  rm -rf /usr/bin/smart
  rm -rf /usr/lib/smart
  rm -rf /usr/lib/python2.4/site-packages/smart
  rm -rf /usr/share/doc/packages/smart
  rpm -e smart-gui
  rpm -e smart
  rpm -ivh http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.1/RPMS/x86_64/smart-0.42-10.guru.suse101.x86_64.rpm
  smart update
  smart upgrade smart -y && smart update

Resultado do comando rpm -ivh.

  rpm -ivh http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.1/RPMS/x86_64/smart-0.42-10.guru.suse101.x86_64.rpm
  A obter o http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.1/RPMS/x86_64/smart-0.42-10.guru.suse101.x86_64.rpm
  A preparar...               ########################################### [100%]
     1:smart                  ########################################### [100%]

SUSE 10 - i386

Mesmo processo no SUSE 10 i386, em uma rede, uma maquina não acusava problemas e na outra maquina que estava com HD de outra rede e foi trocada de maquina, acessa internet sem problema mas smart falha no update, retornava 'Connection refused' em todos os mirrors, veja a mensagem.

  Fetching information for 'SUSE Linux 10.0 APT Security Repository'...
  -> http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386/base/release
  release                                                                                                             [  0%]
  error: Failed acquiring information for 'SUSE Linux 10.0 APT Security Repository':
  error: http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386/base/release: (111, 'Connection refused')

Solução; baixe a ultima versão do smart para substituir na linha de comando abaixo (rpm -ivh) ou cole a url completa para instalar via internet.

  rm -rf /etc/smart
  rm -rf /var/lib/smart
  rm -rf /usr/bin/smart
  rm -rf /usr/lib/smart
  rm -rf /usr/lib/python2.4/site-packages/smart
  rm -rf /usr/share/doc/packages/smart
  rpm -e smart-gui
  rpm -e smart
  rpm -ivh smart-0.40-2.guru.suse100.i686.rpm
  smart update
  smart upgrade smart -y && smart update

Atualizou e voltou a funcionar sem problemas.

reinstall reinstalar pacotes, pode remover e depois instalar, ou em uma tacada só smart reinstall ssh

criar e alterar canal (channel)

Neste tópico tem exemplos práticos aplicados em diversas distribuições, o principio se aplica a qualquer distro, a diferença está nos servidores, tem que usar o servidor (mirror) compatível com a distro e versão, portanto use como referencia e não como modelo para copiar e colar.

Sempre que fizer qualquer alteração no canal, precisa atualizar a base de dados, faça via interface gráfica ou na linha de comando execute; smart update

Nome do canal (arquivo), quando adicionar novos canais, o nome do arquivo tem que terminar em .channel

Tem dados e configurações em diversos diretórios, você deve manipular somente os arquivos que estão em /etc/smart, não tente alterar arquivos que estão em /var/lib/smart/channels/

Tem varias maneiras de criar um canal, a que achei mais fácil, criar um arquivo com os dados do canal em /etc/smart/channels e executar smart update, automaticamente é detectado este novo arquivo no diretório, adiciona o canal e atualiza a base de dados, segue exemplo para criar um canal, o exemplo abaixo apliquei no FC5 x86_64, mas pode aplicar em outras distro com o cuidado de ajustar a URL para a distro em questão, use um editor para criar um arquivo texto "redhat.channel" com este conteúdo

  [root@localhost channels]# cat redhat.channel
  [redhat]
  name = FC5 x86_64 Pacotes apt-rpm do repositorio redhat
  baseurl = http://dl.atrpms.net/fc5-x86_64/redhat
  type = apt-rpm
  components = release updates updates-testing

Salve o arquivo e execute smart update, confirme conforme a pergunta, dependendo do idioma confirme com S ou Y

Mesmo que tenha criado manualmente, pode executar smart na interface gráfica para fazer alterações.

O problema agora é descobrir quais as URL que podem ser utilizadas, também quais os componentes, como não criou automaticamente nem achei esta informação no Google, então resolvi garimpar endereços com pacotes rpm, achei somente os oficiais listados abaixo, são estas URL que estou utilizando para criar canais.

Fedora Core 5

Arquitetura x86_64 - 64 bits
http://dl.atrpms.net/fc5-x86_64/redhat

Arquitetura i386...i686 - 32 bits.
http://dl.atrpms.net/fc5-i386/redhat/
rpm extras e updates, não encontrei referencias para components
http://dist.itu.dk/Fedora/5/
http://dist.itu.dk/Fedora/5/i386/os/Fedora/
http://dist.itu.dk/Fedora/5/i386/os/os/Fedora/

SUSE 10 e OPENSUSE 10.1

SUSE 10 - arquitetura i386 ....i686
http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386/
http://mirrors.isc.org/pub/kde/stable/3.5.1/SuSE/ix86/10.0/

Muitos pacotes extras, jogos, utilitários e etc., navegue em
http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/packages/
x86_64
http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-x86_64/
http://mirrors.isc.org/pub/kde/stable/3.5.1/SuSE/x86_64/10.0/

OPENSUSE 10.1 - i386 ... i686
http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.1-i386/

x86_64
http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.1-x86_64/

Incluir novos componentes no canal.

Recomendo criar um canal para cada repositorio, facilita na administração e manutenção, dá mais trabalho criar novos canais do que alterar os já existentes, pode criar vários canais apontando para o mesmo servidor, canais para componentes diferente ou juntar tudo em um canal, o resultado final é o mesmo, a escolha fica por sua conta.

Acrescentar componentes em um canal, ocorre quando já existe o canal mas não contém todos os componentes, visite a URL e pegue o nome dos componentes, pegue o que vem depois de RPMS.

Como exemplo, no SUSE 10, na instalação vem com KDE 3.4.2 mas já tem atualização para KDE 3.5.1, isto não é automático, precisa incluir endereços (componentes) dos pacotes do KDE 3.5.1, a URL é a mesma, muda somente o componente (diretório), neste caso basta incluir o componente para atualizar o KDE.

Tem alguns rpm do 3.5.1 no repositório oficial em;
http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386/SRPMS.kde/

Mais rpm do KDE 3.5.1 aqui;
http://mirrors.isc.org/pub/kde/stable/3.5.1/SuSE/

Passo a passo, atualizar para KDE 3.5.1. Depois do Smart instalado e atualizado, para atualizar toda a instalação (atualizar pacotes instalados) basta executar;

smart upgrade -y

Com a instalação default do Smart não vai atualizar os pacotes para a última versão, a explicação é simples, vem configurado para usar somente suser-guru, precisa editar o canal para incluir em componentes a procura no diretório desejado, execute smart em ambiente gráfico, a partir de um konsole como root, execute smart --gui edite o canal que contem este endereço;

http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386/

Tem endereços distintos conforme a arquitetura da CPU, maquinas com CPU de 64 bits deve apontar para o endereço; http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-x86_64/

Em componentes, na instalação default consta suser-guru, para incluir mais componentes, edite o canal e vá acrescentando as demais opções, sempre separando com um espaço entre elas, utilize somente o nome que vem depois de RPMS., no endereço acima encontra vários diretórios que iniciam com RPMS., veja alguns exemplos;

   RPMS.gnome/                                        19-Dec-2005 06:41      -  
   RPMS.jacklab/                                      18-Dec-2005 03:51      -  
   RPMS.java/                                         26-Oct-2005 02:07      -  
   RPMS.kde-unstable/                                 21-Nov-2005 13:40      -  
   RPMS.kde/                                          20-Dec-2005 08:39      -  
   RPMS.kde3-stable/                                  05-Dec-2005 21:54      -  
   RPMS.kernel-of-the-day/   

Exemplo para incluir o kde e gnome, observe o nome dos diretórios acima (RPMS.gnome/ e RPMS.kde/ pegue somente a parte que vem depois de RPMS. (gnome kde) descarte o RPMS do nome, acrescente no campo components, deve ficar assim;

suser-guru gnome kde, continue navegando pelos diretórios e selecione o que deseja incluir no seu Smart, não tenho a definição de cada diretório, navegue dentro deles que consegue identificar os pacotes e versão.

Quanto terminar as alterações, salve e clique em atualizar canais (update), depois em atualizar tudo (upgrade) e aguarde..., atualizar o SUSE 10, considere um download de mais ou menos 500MB.

Prefiro atualizar em horario que não utilizo a maquina, prefiro fazer login como root em modo texto e executar;

  smart update
  smart upgrade -y

Em modo texto, ideal para uso em conexão remota via ssh.

smart channel --edit nome-do-canal, edita configurações do canal no editor "vi", faça as alterações e salve com :wq, atualize e pronto, quando criou o canal a partir de arquivo em /etc/smart/channels/, pode editar diretamente neste arquivo com seu editor preferido.

smart channel --show lista os canais existentes na maquina, ideal para descobrir o nome do canal para editar/alterar.

Veja mais dicas no tópico especifico sobre cada distro.

Proxy - Smart passando pelo proxy

Existe a possibilidade de criar regras no firewall, pode ser mais trabalhoso e ter menos controle, passando pelo proxy tem mais controle, aparece nos relatórios do Sarg, de qualquer forma tem as duas opções.

Estações clientes configuradas para usar proxy sem autenticação, formato de linha de comando;

smart config --set http-proxy=http://meu.proxy:3128

Exemplo, estação com SUSE 10, IP do servidor proxy é 192.168.1.2, como root em um console, cole esta linha de comando.

smart config --set http-proxy=http://192.168.1.2:3128

Considere que este comando, configura o smart para fazer os pedidos ao servidor proxy, o restante da configuração é feita no servidor proxy, liberar estações ou usuários quando autenticado, também liberar acesso aos endereços utilizados pelo smart.

Mais detalhes sobre proxy e ACL em;
http://www.zago.eti.br/squid/A-menu-squid.html

Proxy autenticado, ainda não testei, tem mais detalhes nas mensagens do FAQ (smart.txt), acho que no Smart seria algo semelhante a isto;

smart config --set http-proxy="http://usuario:senha@<ip.servidor.proxy>:<porta>"

smart config --set http-proxy="http://zago:minhasenha@192.168.1.2:3128"

Tente também sem as aspas ". tem outros exemplos e dicas nas mensagens do FAQ

Mesmo em proxy autenticado pode criar ACL liberando acesso direto, acesso a sites restritos sem autenticação pelo proxy, ou regras de iptables excluindo os servidores do proxy, tem dicas no FAQ sobre Squid e firewall.

apt - Repositório local - rede local ou na própria maquina

Disponibilizar arquivos das imagens dos 5 CD do SUSE10 em rede, via NFS, repositório local para apt, smart, synaptic.

Existem outras opções e maneiras que pode lhe atender melhor, no yast2 tem várias opções de configuração de diretório local, entre na opção "Software" e veja qual delas melhor lhe atende, também tem a versão em DVD que parece ser mais fácil e prático de trabalhar, nos servidores aparece com "Eval", não procurei saber qual a restrição, como já tinha baixado a versão em 5CD, achei melhor continuar com esta versão livre, também tem a versão em LiveDVD, parece que menos pacotes, mais detalhes nos endereços de download....

Repositório local para apt e synaptic, está neste tutorial do smart por ser parte da configuração, primeiro montar o repositório apt e depois criar os canais smart que utilizarão mesmo repositório do apt.

Testes direto com smart falhou, estou configurando o apt como preparação para configurar e utilizar no smart, funcionou para apt e synaptic, falhou com smart, veja anotações no final do tópico.

Preparando e ambiente utilizado;

Instalação com perfil de estação de trabalho, chamada de servidor porque roda diversos serviços para rede interna, inclusive servidor FreeNX, por isto a instalação do ambiente ambiente gráfico com KDE, a maquina não está de cara para internet mas tem acesso livre, mesmo assim precisa instalar o pacote apt4rpm.

Os passos a seguir são aplicados na maquina com as imagens ISO no diretório /tmp/suse10, tenho as imagens ISO dos 5 CD em outra maquina, antes de aplicar os comandos abaixo, faça a copia para o servidor com o comando scp -r suse10 zago@192.168.1.3:/tmp, caso não tenha as imagens pode se fazer a copia direta do CD, servidor web local com apache rodando, com acesso livre pelas demais estações da rede, sem restrição de firewall ou proxy.

Também precisa o pacote apt4rpm para executar genbasedir, instalar via smart smart install apt4rpm -y

Sobre servidor web (Apache), NFS, FTP e outros serviços envolvidos nesta configuração, veja neste site os tutoriais e FAQ especifico sobre eles.

Use em ambiente de testes, este procedimento foi utilizado somente em testes, pode conter erros...

Comandos no servidor, criar diretórios, montar a imagem ISO e copiar tudo para os diretórios de cada CD, nos comandos abaixo, edite e ajuste os caminhos e nomes conforme sua instalação.

  mkdir /mnt/iso
  mkdir -p /home/suse/cdsuse10/{cd1,cd2,cd3,cd4,cd5,extras}
  mkdir -p /home/suse/aptsuse10/rpmcd1/suse/{RPMS.cd1586,RPMS.cd1686,RPMS.cd1noa}
  mkdir -p /home/suse/aptsuse10/rpmcd2/suse/{RPMS.cd2586,RPMS.cd2686,RPMS.cd2noa}
  mkdir -p /home/suse/aptsuse10/rpmcd3/suse/{RPMS.cd3586,RPMS.cd3noa}
  mkdir -p /home/suse/aptsuse10/rpmcd4/suse/{RPMS.cd4586,RPMS.cd4noa}
  mkdir -p /home/suse/aptsuse10/rpmcd5/suse/{RPMS.cd5586,RPMS.cd5noa}
  mkdir -p /home/suse/aptsuse10/rpmextra/suse/RPMS.extras
  
  mount -o loop /tmp/suse10/SUSE-10.0-CD-i386-GM-CD1.iso /mnt/iso
  cp -R /mnt/iso/* /home/suse/cdsuse10/cd1
  umount /mnt/iso
  mount -o loop /tmp/suse10/SUSE-10.0-CD-i386-GM-CD2.iso /mnt/iso
  cp -R /mnt/iso/* /home/suse/cdsuse10/cd2
  umount /mnt/iso
  mount -o loop /tmp/suse10/SUSE-10.0-CD-i386-GM-CD3.iso /mnt/iso
  cp -R /mnt/iso/* /home/suse/cdsuse10/cd3
  umount /mnt/iso
  mount -o loop /tmp/suse10/SUSE-10.0-CD-i386-GM-CD4.iso /mnt/iso
  cp -R /mnt/iso/* /home/suse/cdsuse10/cd4
  umount /mnt/iso
  mount -o loop /tmp/suse10/SUSE-10.0-CD-i386-GM-CD5.iso /mnt/iso
  cp -R /mnt/iso/* /home/suse/cdsuse10/cd5
  umount /mnt/iso
  # a "gambi" de copiar os rpm ocorre porque foi a nica que funcionou, falhou com link simbolico, 
  #enquanto não arrumo solução melhor vai desta maneira mesmo.
  # pode copiar os rpm para outro local e não misturar com o CD, era um teste 
  # como funcionou, acabou ficando assim mesmo até arrumar tempo para organizar melhor.
  
  cp -R /home/suse/cdsuse10/cd1/suse/i586/* /home/suse/aptsuse10/rpmcd1/suse/RPMS.cd1586
  cp -R /home/suse/cdsuse10/cd1/suse/i686/* /home/suse/aptsuse10/rpmcd1/suse/RPMS.cd1686
  cp -R /home/suse/cdsuse10/cd1/suse/noarch/* /home/suse/aptsuse10/rpmcd1/suse/RPMS.cd1noa
  
  cp -R /home/suse/cdsuse10/cd2/suse/i586/* /home/suse/aptsuse10/rpmcd2/suse/RPMS.cd2586
  cp -R /home/suse/cdsuse10/cd2/suse/i686/* /home/suse/aptsuse10/rpmcd2/suse/RPMS.cd2686
  cp -R /home/suse/cdsuse10/cd2/suse/noarch/* /home/suse/aptsuse10/rpmcd2/suse/RPMS.cd2noa
  
  cp -R /home/suse/cdsuse10/cd3/suse/i586/* /home/suse/aptsuse10/rpmcd3/suse/RPMS.cd3586
  cp -R /home/suse/cdsuse10/cd3/suse/noarch/* /home/suse/aptsuse10/rpmcd3/suse/RPMS.cd3noa
  
  cp -R /home/suse/cdsuse10/cd4/suse/i586/* /home/suse/aptsuse10/rpmcd4/suse/RPMS.cd4586
  cp -R /home/suse/cdsuse10/cd4/suse/noarch/* /home/suse/aptsuse10/rpmcd4/suse/RPMS.cd4noa
  
  cp -R /home/suse/cdsuse10/cd5/suse/i586/* /home/suse/aptsuse10/rpmcd5/suse/RPMS.cd5586
  cp -R /home/suse/cdsuse10/cd5/suse/noarch/* /home/suse/aptsuse10/rpmcd5/suse/RPMS.cd5noa
  
  cd /home/suse/aptsuse10/rpmcd1/suse
  genbasedir `pwd`
  cd /home/suse/aptsuse10/rpmcd2/suse
  genbasedir `pwd`
  cd /home/suse/aptsuse10/rpmcd3/suse
  genbasedir `pwd`
  cd /home/suse/aptsuse10/rpmcd4/suse
  genbasedir `pwd`
  cd /home/suse/aptsuse10/rpmcd5/suse
  genbasedir `pwd`
  
  chmod -R 755 /home/suse/*
  
  # link no servidor web.
  
  ln -s /home/suse/aptsuse10 /srv/www/htdocs/
  

Prontinho, teste chamando o synaptic e consulte a lista de pacotes instalados e disponíveis, tem que listar alguns pacotes não marcados, são os não instalados que podem instalar a partir deste repositório, teste também acessando via navegador.

Pode testar na própria maquina, instale o pacote apt, inclua o exemplo da estação logo abaixo, atualize o banco de dados e tente instalar algum pacote, comandos executados no servidor;

  smart install apt -y
  # edite /etc/apt/souces.list e inclua o exemplo da estação (exemplo abaixo)
  apt-get update
  apt-cache search ssh

#Nas estações, endereços do apt, acrescente em /etc/apt/souces.list das estações que usarão este repositório.

  rpm http://192.168.1.3/aptsuse10/rpmcd1/ suse cd1586 cd1686 cd1noa
  rpm http://192.168.1.3/aptsuse10/rpmcd2/ suse cd2586 cd2686 cd2noa
  rpm http://192.168.1.3/aptsuse10/rpmcd3/ suse cd3586 cd3686 cd3noa
  rpm http://192.168.1.3/aptsuse10/rpmcd4/ suse cd4586 cd4686 cd4noa
  rpm http://192.168.1.3/aptsuse10/rpmcd5/ suse cd5586 cd5686 cd5noa

Sempre que alterar o sources.list precisa atualizar a base de dados do apt, execute; apt-get update

Prontinho, teste chamando o synaptic e consulte a lista de pacotes instalados e disponíveis, quando OK vai listar alguns pacotes não marcados, estes são os disponíveis para instalar a partir deste repositório, teste também acessando via navegador, tem que navegar pelos diretórios com rpm sem problemas, caso falhe pode ser erro no link ou servidor web.

Espaço ocupado; como não cabe em um DVD, qualquer dia vou separar os rpm para caber em DVD.

  du -k /home/suse/aptsuse10
  3406513 /home/suse/aptsuse10
  
  du -k /home/suse/cdsuse10
  3545172 /home/suse/cdsuse10
  

Aproveite para criar um DVD ou copiar para outras redes o repositório do apt está em /home/suse/aptsuse10, pode incluir seus rpm ou download dos rpm mais utilizados e que não estão nos repositórios oficiais, como exemplo o próprio smart.

Indicações e sites relacionados ao smart

http://smartpm.org/
Download, FAQ e documentação. The Smart Package Manager project has the ambitious objective of creating smart and portable algorithms for solving adequately the problem of managing software upgrading and installation. This tool works in all major - distributions, and will bring notable advantages over native tools currently in use (APT, APT-RPM, YUM, URPMI, etc).

Documentação, FAQ, lista de discussão, download, pacotes para diversas distros.
http://labix.org/smart

Smart packages for Fedora Core
http://zorked.net/smart/

Tutoriais e documentação
http://www.susewiki.org/index.php?title=Smart

Pesquise no google por: "Smart Package Manager"

Outros gerenciadores de pacotes - indicações de FAQ e sites

http://www.zago.eti.br/apt.txt

http://www.zago.eti.br/rpm.txt

Consulte o FAQ o tutorial especifico sobre sua distro, algumas indicações em;
http://www.zago.eti.br/distro/A-distro.html

Continuação deste documento - parte 2 - canais.
http://www.zago.eti.br/smart-channel.html

Página principal deste site (FAQ)
http://www.zago.eti.br/menu.html