smart package channel, criar canais no smart.

Atualizado em: 04/06/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 partes para diminuir o tamanho, neste documento (parte 2), tem exemplos de como criar canais (este tutorial é continuação de smart-dicas.html).

Instalação, dicas e indicações de tutoriais, acesse o tutorial principal em;
http://www.zago.eti.br/smart-dicas.html

Identificar tipo de canal e modelos de comando na criação

rpm-sys Na instalação do smart cria este canal com os pacotes instalados, para instalar pacotes do CD ou da internet, fazer update ou instalar pacotes extras que não fazem parte do CD, precisa criar novos canais, veja algumas dicas.

Repositórios da distro com pacotes rpm para instalar via apt.(apt-rpm)

Quando na URL encontrar sub-diretórios RPMS.algumnome, este diretório é um repositório apt e no smart use (type = apt-rpm) e relacione em (components =) a parte do nome do sub-diretório que vem depois de RPMS., mais detalhes e exemplos, procure no menu deste documento ( apt - Criar canal) Cuidado, pode instalar smart em diversas distro, como exemplo SUSE, Mandriva, FC e etc.., pelo que entendi, apt-rpm se referir aos servidores da distro em questão, até é possível configurar repositórios de outra distro, mas deve mudar a opção e configuração, ainda não testei com rpm de outras distros, neste tópico utilizei como exemplo uma instalação do SUSE, somente como exemplo de configuração, na sua instalação utilize endereços da sua distro., nada melhor do que usar em ambiente de testes para tirar suas conclusões e conhecer este maravilhoso smart....

Repositórios rpm da distro (rpm-md)

Quando na URL encontrar sub-diretório repodata/, no smart use (type = rpm-md), exemplos e mais dicas no tópico (rpm-md), procure por ele no menu deste documento.

Repositório SUSE yast2 e imagem cd CD/DVD

Quando na URL encontrar o arquivo directory.yast, no smart use (type=yast2). São servidores com pacotes rpm do SUSE para yast2, exemplos e mais dicas no tópico (Yast - Servidores de pacotes) e (Adicionar DVD ou ISO do DVD), procure por eles no menu deste documento.

red-carpet

Quando na URL encontrar o arquivo channels.xml.gz, no smart use (type=red-carpet), exemplos e mais dicas no tópico (red-carpet), procure por ele no menu deste documento.

smart channel --help, retorna;

  linux-msi64:/home/zago # smart channel --help
  Uso: smart channel [opções]
  
  Este comando permite a manipulação de canais. Canais são usados
  como fontes de informação de pacotes instalados e disponíveis.
  Dependendo do tipo do canal, um backend diferente é utilizado para
  gerenciar as interações com o sistema operacional e a extração
  de informações do canal especificado.
  
  Os seguintes tipos de canal estão disponíveis:
  
    apt-deb    - Repositório APT-DEB
    apt-rpm    - Repositório APT-RPM
    deb-dir    - Diretório DEB
    deb-sys    - Pacotes DPKG Instalados
    mirrors    - Informação de Mirrors
    red-carpet - Canal Red Carpet
    rpm-dir    - Diretório RPM
    rpm-hdl    - Header List RPM
    rpm-md     - MetaData RPM
    rpm-sys    - Pacotes RPM Instalados
    slack-site - Repositório Slackware
    slack-sys  - Pacotes Slackware Instalados
    up2date-mirrors - Informação de Mirrors (formato up2date)
    urpmi      - Repositório URPMI
    yast2      - YaST2 Repository (experimental!)
  
  Use --help-type <tipo> para maiores informações.
  
  Opções:
    -h, --help        Mostra esta mensagem de ajuda e sai
    --add             O argumento é um apelido e um ou mais pares chave=valor
                      definindo um canal, ou um nome de arquivo/url apontando
                      para uma descrição de canal on mesmo formato usado pelo
                      --show, ou um caminho de um diretório onde autodetecção
                      será tentada.
    --set             O argumento é um apelido, e um ou mais pares chave=valor
                      modificando um canal
    --remove          Os argumentos são apelidos de canais a serem removidos
    --remove-all      Remove all existent channels
    --show            Mostra canais com os apelidos fornecidos, ou todos os
                      canais se nenhum argumento foi passado
    --edit            Edit channels in editor set by $editor
    --enable          Habilita canais com os apelidos fornecidos
    --disable         Desabilita canais com os apelidos fornecidos
    -y, --yes         Executa sem perguntar
    --help-type=TYPE  Mostra informações adicionais a respeito do tipo fornecido
  
  Exemplos:
    smart channel --help-type apt-rpm
    smart channel --add mydb type=rpm-sys name="RPM Database"
    smart channel --add mychannel type=apt-rpm name="Some repository" \
                      baseurl=http://somewhere.com/pub/repos components=extra
    smart channel --set mychannel priority=-100
    smart channel --disable mychannel
    smart channel --remove mychannel
    smart channel --show
    smart channel --show mychannel > mychannel.txt
    smart channel --add ./mychannel.txt
    smart channel --add http://some.url/mychannel.txt
    smart channel --add /mnt/cdrom

Mais informações sobre um tipo de canal, como exemplo apt-rpm;

  linux-msi64:/home/zago # smart channel --help-type apt-rpm
  Tipo: apt-rpm - Repositório APT-RPM
  
  Repositório criado para o APT-RPM.
  
  Campos:
    alias (*)      - Identificação única para o canal.
    type (*)       - Tipo do canal
    name           - Nome do canal
    manual         - Se usado um valor verdadeiro, o canal será
                     atualizado somente quando manualmente selecionado.
    disabled       - Se usado um valor verdadeiro, o canal não será
                     utilizado.
    removable      - Se usado um valor verdadeiro, o canal será
                     considerado como estando disponível em uma mídia
                     removível (cdrom, etc).
    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.
    baseurl (*)    - URL base do repositório APT-RPM, onde base/ está
                     localizado.
    components (*) - Lista de componentes separados por espaço.
    fingerprint    - Fingerprint GPG da chave assinando o canal.
  
  (*) Estes campos são necessários para este tipo.

apt - Criar canal com repositórios de pacotes do apt SUSE

Smart trabalha também com pacotes apt, utiliza os mesmos pacotes e servidores do apt, muda o formato de configurar endereços dos servidores, não tem um sources.list como no apt, precisa criar canal com os componentes.

apt-rpm como e quando usar?. Utilize somente com pacotes da própria distro, respeite também a versão e arquitetura, endereços de repositórios de outras distribuições deve usar outra opção em (type), veja na tabela (manual).

Diretório local com pacotes rpm, precisa criar a arvore APT, requer o pacote apt4rpm, veja mais detalhes e exemplo neste documento em (Criar repositório local com rpm extras).

Mirror apt, cria channel para instalar pacotes de repositórios APT, como exemplo, vamos criar um canal com vários componentes para SUSE 10 i386, acesse este endereço;

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

Observe que inicia com um arquivo .gz e diversos diretórios que iniciam com RPMS. mais um nome.
  Contents-i386.gz
  RPMS.base/
  RPMS.extra/
  RPMS.funktronics/
  RPMS.gnome/
  ---corta---
Na criação do canal precisamos da URL acima e da parte do nome dos diretórios, somente a parte que vem depois do ponto, acrescente estes nomes em components, separados por espaço, para criar um canal que utilize os pacotes dos diretórios acima, crie um arquivo texto com nome suse100-i386-apt-gwdg.channel e dentro dele este conteúdo.

  [suse100-i386-apt-gwdg]
  name = SUSE 10.0 -i386 - canais de http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
  baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
  type = apt-rpm
  components = base extra funktronics gnome

No diretório onde salvou, execute smart channel --add ./suse100-i386-apt-gwdg.channel, confirme a criação do canal e atualize a base de dados com smart update, prontinho, os pacotes do diretório acima já fazem parte da pesquisa do smart, estão na lista de pacotes que podem instalar/atualizar.

Edite o canal e acrescente ou remova components, em modo texto (smart channel --edit) chama o editor "vi", ou (smart --gui) para alterar em ambiente gráfico, a lista é grande, utilizei somente os 4 primeiros da lista a título de exemplo, cria sua lista ou adicione todos, ou entre em cada um deles para conferir quais são os pacotes.

Sempre que fizer qualquer alteração no canal, precisa atualizar a base de dados smart update

Yast - Servidores de pacotes Yast - adicionar canal smart

Ambiente; SUSE 10.1

  smart channel --add http://200.204.198.164/zago/smart/s101yast.channel
  
  smart update

Exemplo em linha de comando, tem o mesmo resultado do exemplo acima.

  smart channel --add s101yast type=yast2 name="SUSE 10.1 (yast2)"    baseurl=http://ftp.opensuse.org/pub/opensuse/distribution/SL-10.0-OSS/inst-source
  
  smart update

Alguns endereços de servidores yast2, crie novos canais do smart, confira se no endereço tem o arquivo directory.yast, ou navegue até encontrar este arquivo e utilize o endereço URL em baseurl=, pegue um dos exemplos acima, altere o nome do canal e utilize o novo endereço.

utilize endereços compatível com sua versão e arquitetura.
http://ftp.opensuse.org/pub/opensuse/distribution/SL-10.1/inst-source/
http://ftp.opensuse.org/pub/opensuse/distribution/SL-10.0-OSS/inst-source/

  linux-msi64:/home/zago # smart channel --help-type yast2
  Tipo: yast2 - YaST2 Repository (experimental!)
  
  Repositories created for YaST2.
  
  Campos:
    alias (*)   - Identificação única para o canal.
    type (*)    - Tipo do canal
    name        - Nome do canal
    manual      - Se usado um valor verdadeiro, o canal será atualizado
                  somente quando manualmente selecionado.
    disabled    - Se usado um valor verdadeiro, o canal não será
                  utilizado.
    removable   - Se usado um valor verdadeiro, o canal será considerado
                  como estando disponível em uma mídia removível (cdrom,
                  etc).
    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.
    baseurl (*) - Base URL of YaST2 repository, where directory.yast is
                  located.
  
  (*) Estes campos são necessários para este tipo.

urpmi - Mandriva

Configurar smart para instalar pacotes a partir de servidores urpmi, indique o tipo de canal como urpmi, veja exemplos abaixo, são canais criados na instalação do smart 0.42.1, edite a URL (baseurl e hdlurl ) apontando para o novo servidor.

  [cooker]
  type = urpmi
  name = Cooker
  baseurl = ftp://ftp.ciril.fr/pub/linux/mandrakelinux/devel/cooker/cooker/media/main
  hdlurl = ftp://ftp.ciril.fr/pub/linux/mandrakelinux/devel/cooker/cooker/media/media_info/synthesis.hdlist_main.cz
  
  [cooker-contrib]
  type = urpmi
  name = Cooker Contrib
  baseurl = ftp://ftp.ciril.fr/pub/linux/mandrakelinux/devel/cooker/cooker/media/contrib
  hdlurl = ftp://ftp.ciril.fr/pub/linux/mandrakelinux/devel/cooker/cooker/media/media_info/synthesis.hdlist_contrib.cz
  
  [cooker-jpackage]
  type = urpmi
  name = Cooker JPackage
  baseurl = ftp://ftp.ciril.fr/pub/linux/mandrakelinux/devel/cooker/cooker/media/jpackage
  hdlurl = ftp://ftp.ciril.fr/pub/linux/mandrakelinux/devel/cooker/cooker/media/media_info/synthesis.hdlist_jpackage.cz

Criar repositório local com rpm extras

Dicas para quem administra muitas instalações ou quando precisa instalar/atualizar pacotes em maquinas sem conexão de internet.

Muitos pacotes não vem no CD de instalação, são os extras ou empacotados por colaboradores, no OPENSUSE não vem os pacotes proprietários como flash, RealPlayer e outros.

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

smart config --set remove-packages=false

Isto salva e mantém os rpm no diretório /var/lib/smart/packages, depois é só juntar com os demais rpm para criar um CD de atualização, veja tópico no tutorial smart-dicas.html sobre "Criar CD de atualização - reaproveitar rpm de outra instalação"

Nestes casos, economize banda e tempo, faça download do pacote rpm em uma maquina e depois utilize nas demais, pode até usar em maquinas sem conexão com net, crie um CD ou transfira por e-mail, ftp, ssh e etc...

Instalar via smart, no diretório onde salvou execute;

smart install ./nome-do-pacote

Também pode criar um CD para instalar os pacotes a partir dele.

Maquina em rede fica mais prático criar um repositório local, a seguir exemplo de como fazer download e depois criar um CD de instalação, repositório em diretório da própria maquina, e repositório em servidor web (apache) para a rede interna.

Download no formato smart download nome-do-pacote, não instala o pacote, somente salva o arquivo no diretório local, neste exemplo vou utilizar o diretório /tmp/rpmextras/RPMS.meurpm, observe que é obrigatório o diretório dos rpm iniciar com RPMS. o nome que vem depois pode ser outro qualquer, também precisa ficar abaixo de um diretório do raiz para executar o comando genbasedir acima do RPMS. evite nomes longos, nomeia do seu modo, quando tiver problema siga este exemplo que funciona

  mkdir /tmp/rpmextras/RPMS.meurpm
  cd /tmp/rpmextras/RPMS.meurpm
  smart install apt4rpm -y
  smart download java-1_5_0-sun-plugin
  smart download flash-player
  smart download gxine
  smart download Mplayer
  # pode navegar na URL e baixar via navegador, wget ou informar o endereço
  smart download http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.1-i386/RPMS.extra/RealPlayer-10.0.7-7.i586.rpm
  smart download  http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.1-x86_64/RPMS.extra/opera-8.52-9.x86_64.rpm
  wget -c http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.1-x86_64/RPMS.extra/acroread-7.0.5-12.i586.rpm

como pode notar, pode usar varios meios de download, via navegador ou wget não resolvem dependências, o smart deveria resolver mas está baixando somente o pacote indicado, fica faltando as dependências, quando disparo o comando no diretório local ele vai buscar o resto na net, a solução que encontrei, disparar o comando install para ver as dependências, cancelar a instalação e baixar uma por uma das dependências indicadas, por enquanto estou fazendo esta (gambi) até encontrar a diretiva que inclua as dependências ou outra forma mais elegante.

Resultado parcial do download acima.

  # ls -la /tmp/rpmextras/RPMS.meurpm/
  total 55793
  drwxr-xr-x 2 root root      440 Apr 21 21:32 .
  drwxr-xr-x 3 root root       80 Apr 21 21:29 ..
  -rw-r--r-- 1 root root  8563531 Mar 29 14:08 MPlayer-1.0pre7try3-4.x86_64.rpm
  -rw-r--r-- 1 root root  5397611 Apr 20 15:26 RealPlayer-10.0.7-7.i586.rpm
  -rw-r--r-- 1 root root 36511823 Apr 18 13:13 acroread-7.0.5-12.i586.rpm
  -rw-r--r-- 1 root root   126232 Apr 19 00:20 apt4rpm-0.69.3-15.noarch.rpm
  -rw-r--r-- 1 root root   991932 Apr 13 15:52 flash-player-7.0.63.0-5.i586.rpm
  -rw-r--r-- 1 root root   370126 Apr  4 21:43 gxine-0.5.5-0.pm.0.x86_64.rpm
  -rw-r--r-- 1 root root   585658 Apr 18 14:53 java-1_5_0-sun-plugin-1.5.0_06-15.i586.rpm
  -rw-r--r-- 1 root root  4515934 Apr 18 12:59 opera-8.52-9.x86_64.rpm
  

Criar arvore apt com os pacotes do diretório /tmp/rpmextras/RPMS.meurpm.

Somente na maquina que vai criar a arvore apt, requer o pacote

  cd /tmp/rpmextras/
  genbasedir `pwd`

Prontinho, arvore apt criada, pode usar de diversas maneiras; instalar pacotes via apt ou smart, criar CD, empacotar com tar, criar canal smart para instalar a partir de diretório local ou disponibilizar no servidor Apache na rede interna, copiar o diretório para outra maquina e criar o canal.

Em outras instalações não requer o procedimento acima, somente copiar o diretório e criar o canal.

A seguir o arquivo modelo utilizado nesta instalação, baixe e edite conforme sua instalação, nome de diretórios e etc, quem utilizou os mesmos nomes acima pode criar o canal diretamente na linha de comando.

smart channel --add http://200.204.198.164/zago/smart/suse10-aptlocal-extras.channel

Ou baixe este arquivo e edite conforme sua configuração, no diretório onde salvou, execute;

smart channel -add ./suse10-aptlocal-extras.channel

Tem outras maneiras de manipular canais, veja no tutorial smart-dicas.html, veja também outros tutoriais indicados no final deste documento, como criar imagem ISO, gravar CD, tutoriais sobre APT.

Log dos comandos finais, resultado do comando genbasedir

  # 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]
  
  linux-x8664:/tmp/rpmextras # ls -la
  total 1
  drwxr-xr-x  4 root root 104 Apr 21 21:41 .
  drwxrwxrwt 18 root root 640 Apr 21 21:41 ..
  drwxr-xr-x  2 root root 440 Apr 21 21:32 RPMS.meurpm
  drwxr-xr-x  2 root root 176 Apr 21 21:41 base
  linux-x8664:/tmp/rpmextras # ls -la base
  total 60
  drwxr-xr-x 2 root root   176 Apr 21 21:41 .
  drwxr-xr-x 4 root root   104 Apr 21 21:41 ..
  -rw-r--r-- 1 root root 39364 Apr 21 21:41 pkglist.meurpm
  -rw-r--r-- 1 root root  8926 Apr 21 21:41 pkglist.meurpm.bz2
  -rw-r--r-- 1 root root   361 Apr 21 21:41 release
  -rw-r--r-- 1 root root   140 Apr 21 21:41 release.meurpm

Manual (help) do smart

  linux-x8664:~ # smart download --help
  Uso: smart download [opções] pacote ...
  
  Este comando permite fazer download de um ou mais pacotes fornecidos.
  
  Opções:
    -h, --help    Mostra esta mensagem de ajuda e sai
    --target=DIR  Pacotes serão gravados no diretório especificado
    --urls        Mostra as urls necessárias e não faz download dos pacotes
    --from-urls   Faz download a partir das urls fornecidas e/ou a partir dos
                  arquivos com listas de urls fornecidos
  
  Exemplos:
    smart download nomepacote
    smart download '*omepaco*'
    smart download nomepacote-1.0
    smart download nomepacote-1.0-1
    smart download nomepacote1 nomepacote2
    smart download nomepacote --urls 2> nomepacote-url.txt
    smart download --from-urls nomepacote-url.txt
    smart download --from-urls http://alguma.url/algum/caminho/algumarquivo

Adicionar DVD ou ISO do DVD como canal do smart SUSE 10.1

Quem tem SUSE em DVD, pode criar uma ISO do DVD ou fazer copia completa para um diretório qualquer.

Quem tem a ISO pode montar e copiar ou simplesmente montar a ISO no boot.

O que importa é acesso aos arquivos em um diretório local da maquina

Ideal para administração remota, não requer troca de CD, nem requer unidade de CDROM/DVD na maquina, muito mais rápido e prático para instalar programas, também pode montar um diretório com pacotes atualizados, tudo depende de sua necessidade e criatividade...

Minha colinha, copiar e colar, meu resumo de comandos, veja a seguir mais detalhes e como fazer de outra forma em Explicando...

Tenho a imagem ISO para DVD, tanto faz baixar a ISO do DVD ou criar a partir das ISO do CD, o que importa é ter a ISO em /tmp da maquina local, o resultado é o mesmo e não depende da rede.

  su -
  mkdir /mnt/isolocal
  echo "mount -o loop /tmp/openSuSE-10.1-RC1-DVD.iso /mnt/isolocal" >> /etc/rc.d/boot.local
  mount -o loop /tmp/openSuSE-10.1-RC1-DVD.iso /mnt/isolocal
  smart channel --add http://200.204.198.164/zago/smart/s101isolocal.channel
  smart update

Outro exemplo com a imagem ISO em outra maquina da rede.

Ambiente, Imagem ISO do dvd sendo exportada via NFS, OPENSUSE 10.1 i386 RC1 instalado via rede, depois de instalado adicionei o pacote do smart via yast, sem canais adicionais, contendo somente o canal ([rpm-sys]), este canal lista somente os pacotes da instalação (sys - sistema).

  su -
  mkdir /mnt/dvdnfs
  echo "192.168.1.120:/tmp/distro /mnt/dvdnfs     nfs        defaults              0 0" >> /etc/fstab
  mount -a
  smart channel --add http://200.204.198.164/zago/smart/s101dvdnfs.channel
  smart update

Explicando, com imagem do CD exportada via NFS, configurar montagem automática no boot como no exemplo acima ou montar manualmente como no exemplo abaixo, a diferença entre maquina da rede ou local, está somente na linha de comando para montar, ajuste a linha de montagem quando utilizar copia da ISO na maquina local.

  su -
  mkdir /mnt/dvdnfs
  mount -tnfs 192.168.1.120:/tmp/distro /mnt/dvdnfs
  cd /etc/smart
  mkdir channels
  cd channels
  vi dvdlocal.channel

conteúdo do arquivo dvdnfs.channel

  [dvdnfs]
  name = DVD de instalar OPENSUSE
  baseurl = /mnt/dvdnfs/
  type = yast2

O que importa neste exemplo de canal;

Que seja uma ISO de CD ou DVD de instalação SUSE, ou seja, arvore yast2

Que estejam acessíveis no endereço indicado, neste exemplo /mnt/dvdnfs/, não importa se o que tem lá é copia do DVD ou montagem da ISO na maquina local ou montagem de um compartilhamento NFS, faça um teste, acesse este diretório e confira se o conteúdo está igual ao do DVD, se for igual está tudo OK.

Salvar e sair, atualize o canal, execute;

smart update

confira editando editando os canais,

smart channel --edit

quando OK lista os novos canais, faça pesquisa sobre pacotes não instalados para ver se aparecem na lista, utilize também a interface gráfica que fica mais fácil de visualizar a lista de pacotes.

x86_64

Arquitetura x86_64 tem versão exclusiva, quando instalado esta versão, muda somente o nome da ISO na montagem, os demais procedimentos e comandos são os mesmos, muda os repositórios na internet, neste exemplo de canal para utilizar a ISO do DVD não tem diferenças com canal para i386, exemplo em instalação do OpenSUSE 10.1 x86_64 RC1, com a ISO do DVD em /tmp da maquina local, o resultado é o mesmo e não depende da rede.

  su -
  mkdir /mnt/isolocal
  echo "mount -o loop /tmp/openSuSE-10.1-x86_64-RC1-DVD.iso /mnt/isolocal" >> /etc/rc.d/boot.local
  mount -o loop /tmp/openSuSE-10.1-x86_64-RC1-DVD.iso /mnt/isolocal
  smart channel --add http://200.204.198.164/zago/smart/s101isolocal.channel
  smart update

Adicionar canal via linha de comando

Neste tópico, um resumo com varias opções para adicionar canais via linha de comando, neste documento tem outras opções e dicas. Em modo texto é ideal para uso em conexão remota via ssh, copiar linhas de comando ou configurações diretamente do editor de texto ou navegador para colar no console do root, usar em scripts e etc.... Pode se fazer estas configurações também via interface gráfica, para isto requer a instalação do pacote smart-gui e chamar smart com o comando: smart --gui

Vários exemplos para criar canal via linha de comando (modo texto, todos levam ao mesmo resultado. Criar o canal osuse101-kde353-rpm-md.channel que aponta para os pacotes do KDE 3.5.3.

Em todos exemplos abaixo precisa atualizar o canal, pode fazer via interface gráfica ou na linha de comando no console do root, depois de criar o canal execute.

smart update para atualizar a base de dados.

Caso se arrependa e queira remover o canal (osuse101-kde353-rpm-md), execute esta linha de comando.

smart channel --remove osuse101-kde353-rpm-md

Listar e editar canais

smart channel --show lista os canais

smart channel --edit nome-do-canal edita canal no editor "vi"

No editor "vi", para entrar em modo edição pressione a tecla INSERT, use as setas de direção para navegar no texto, tecla del apaga caracteres.
Veja mais dicas no FAQ sobre o editor "vi".
Sair sem salvar, pressione a telca ESCAPE :q!
Salvar e sair pressione a tecla ESCAPE :wq

Adicionar novo canal via linha de comando, cuidado com a quebra de linha, tem que ser tudo em uma única linha de comando ou quebrar a linha com "\" no final da linha, acho mais prático adicionar a partir de arquivo, use seu editor preferido para criar arquivo texto com as informações do canal, adicione os canais a partir deste arquivo, segue alguns exemplos, faça sua escolha ou crie outras opções....

Use os exemplos a seguir como referencia, como consulta, precisa editar para ajustar conforme a instalação, precisa levar em conta a arquitetura, distro e versão da mesma, endereços dos servidores e tipo de repositórios(canais).

Exemplo para criar um canal de atualização do KDE 3.5.3 no SUSE 10.1, digitar o colar tudo de uma vez na linha de comando.

Exemplo 1

digitando tudo na linha de comando, ou se preferir pode editar sem seu editor de texto para copiar e colar no console do root.

  smart channel --add osuse101-kde353-rpm-md type=rpm-md name="KDE 353 de http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/" baseurl=http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/ 

Resultado deste comando.

   smart channel --add osuse101-kde353-rpm-md type=rpm-md name="KDE 353 de http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/" baseurl=http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/
  
  Alias: osuse101-kde353-rpm-md
  Type: rpm-md
  Name: KDE 353 de http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/
  Base URL: http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/
  
  Include this channel? (y/N): Y
  

Ou com quebra de linha, copiar e colar todas de uma única vez.

  smart channel --add osuse101-kde353-rpm-md \
  type=rpm-md \
  name="KDE 353 de http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/" \
  baseurl=http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/

Resultado na linha de comando.

  smart channel --add osuse101-kde353-rpm-md \
  > type=rpm-md \
  > name="KDE 353 de http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/" \
  > baseurl=http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/
  
  Alias: osuse101-kde353-rpm-md
  Type: rpm-md
  Name: KDE 353 de http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/
  Base URL: http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/
  
  Include this channel? (y/N):

Exemplo para FC5 arquitetura x86_64, criar um canal apontando para os pacotes updates-testing

  smart channel --add redhattest type=apt-rpm \
  name="FC5 x86_64 Pacotes do updates-testing redhat" \
  baseurl=http://dl.atrpms.net/fc5-x86_64/redhat \
  components=updates-testing
  
  smart update
  

Resultado;

  [root@localhost channels]# smart channel --add redhattest type=apt-rpm \
  > name="FC5 x86_64 Pacotes do updates-testing redhat" \
  > baseurl=http://dl.atrpms.net/fc5-x86_64/redhat \
  > components=updates-testing
  
  Apelido: redhattest
  Tipo: apt-rpm
  Nome: FC5 x86_64 Pacotes do updates-testing redhat
  URL Base: http://dl.atrpms.net/fc5-x86_64/redhat
  Componentes: updates-testing
  
  Incluir este canal? (s/N): s
  
  [root@localhost channels]# smart update
  Carregando o cache...
  Atualizando cache...                             
  
  --- corta ----
  
  Canais possuem 83 pacotes novos.
  Gravando o cache...

Exemplo 2

Criar arquivo texto no diretório /etc/smart/channels, em versões mais recentes o smart cria este diretório com alguns canais, caso não exista na sua instalação, pode criar manualmente com esta linha de comando.

mkdir -p /etc/smart/channels

entre no diretório cd /etc/smart/channels e com seu editor preferido, crie os canais, obrigatoriamente o nome do arquivo tem que terminar com .channel, exemplo de conteúdo de um arquivo para criar o mesmo canal do exemplo 1. ( osuse101-kde353-rpm-md.channel)

  [osuse101-kde353-rpm-md]
  name="KDE 353 de http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/"
  baseurl=http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.1/
  type=rpm-md

Depois de salvar o arquivo, execute smart update para atualizar e base de dados e neste caso fará também a inclusão do novo canal.

Na atualização ele verifica se houve alterações no diretório /etc/smart/channels, processa automaticamente a inclusão de novos canais(arquivos) ou alterações.

Exemplo 3

Com o arquivo do exemplo 2 em outro local, executar a linha de comando dentro do mesmo diretório onde salvou o arquivo do canal, exemplo de comando para arquivo em /tmp/osuse101-kde353-rpm-md.channel, informe o caminho ou entre no diretório.

  cd /tmp
  smart channel --add ./osuse101-kde353-rpm-md.channel

Exemplo 4

Disponibilizar a configuração do canal em servidor web, muito prático quando precisa configurar diversas maquinas, basta colocar o arquivo no servidor web interno, na linha de comando indique a URL do arquivo de configuração que o smart busca este arquivo e cria o canal, considere criar um documento HTML como este, com instruções e arquivos de canais que deseja usar na sua rede, assim os usuários acessam as instruções e encontra a linha de comando para copiar e colar.

Veja este exemplo, basta copiar e colar as linhas abaixo no console do root.

  smart channel --add http://200.204.198.164/zago/smart/osuse101-kde353-rpm-md.channel -y
  #smart update
  #smart upgrade kde*

Faça testes com o exemplo acima, crie o mesmo em seu servidor web interno, altere o endereço conforme sua rede, edite o canal coforme o servidor que deseja acessar e prontinho, depois é só copiar e colar no konsole do root.

Considere reaproveitar os pacotes de uma instalação para atualizar as demais, veja dicas no tutorial smart-dicas.html, procure.

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

Canal local - pacotes rpm do CD em diretório local ou rede local

Quando utilizar somente a ISO dos CD, prefira adicionar canal yast, procure no menu deste documento (Adicionar ISO do DVD como canal do smart SUSE 10.1)

O exemplo neste tópico inclui todos os rpm do CD, mas pode fazer uma seleção parcial deles, adicionar mais pacotes, como os extras e contrib, download direto e até mesmo o diretório do smart quando configurado para manter os rpm.

Como criar um canal para usar os rpm do CD copiados para um diretório da própria maquina, muito prático em instalações de testes, não requer CDROM nem acesso à internet para instalar pacotes, cuidado com espaço em disco, consome (3.3G), depois da instalação pode remover as imagens ISO para liberar espaço.

Tentei adicionar canal apontando para ponto de montagem da imagem ISO, deu erro na instalação de pacotes, removi estas linhas de comando, enquanto não descubro onde errei, segue a solução que adotei, criar um diretório apt com os RPM das 5 ISO.

Considere que tem solução semelhante para quem usa yast, prefiro via smart, conectado remotamente via ssh, colar algumas linhas de comando no console e aguardar...

Ambiente; OPENSUSE 101.1 RC1, instalado com perfil KDE, com as 5 ISO no diretório /home/zago/iso, o processo é simples, depois da instalação copie via rede a imagens ISO para um diretório qualquer, neste exemplo fiz a copia via ssh para meu home.

Requer o pacote apt4rpm, não achei no CD de instalação, pode baixar o rpm, são vários pacotes para resolver dependências, em maquinas com acesso à internet, o caminho mais fácil, instalar smart via yast, criar o canal (osuse101-386-apt-gwdg.channel) conforme indicado abaixo, instalar o pacote e remover o canal, com isto está pronto para montar o repositório apt.

Este processo é necessário para criar o repositório apt pela primeira vez ou quando quer alterar para incluir novos rpm, depois de pronto pode simplesmente copiar o diretório para outras maquinas e criar somente os canais, não precisa desta rotina descrita abaixo.

Agora está pronto para executar todos os comandos, criar diretórios, montagem da ISO, criar o repositório rpm e criar canais, veja a seqüencia de comandos em;
http://200.204.198.164/zago/smart/suse101-rpmlocal.sh

Baixe o arquivo, com seu editor, altere os caminhos e nome da ISO, depois de alterado pode executar ou copiar e colar linha por linha no console.

Estou modificando o script a cada nova versão para correção no nome das ISO, (ultima atualização RC1,) as mensagens neste tutorial pode ter referencias a beta anteriores, vou fazer uma revisão e correção quando sair a versão final.

  #Resumo de comandos, minha colinha, evite copiar e colar estas linhas, use como referencia e consulta.
  cd /tmp
  smart channel --add http://200.204.198.164/zago/smart/osuse101-386-apt-gwdg.channel
  smart update
  smart install apt4rpm -y
  #depois de instalado pode desabilitar o canal.
  smart channel --disable osuse101-386-apt-gwdg
  wget http://200.204.198.164/zago/smart/suse101-rpmlocal.sh
  chmod 755 suse101-rpmlocal.sh
  ./suse101-rpmlocal.sh
  #a linha abaixo, adiciona canais, em lugar de instalar, baixe, edite e adicione o canal a partir do diretório onde salvou
  smart channel --add http://200.204.198.164/zago/smart/osuse101-386-cdlocal.txt
  smart update

Ignore as mensagens de erro do script (No such file or directory) e (command not found), mantive a arvore de diretórios igual para todas ISO e alguns diretórios não existem, pode prosseguir sem problemas, quando sair a versão final removo os diretórios não utilizados para eliminar estes avisos.

Nas demais instalações não precisa repetir o processo de criação do diretório rpm, basta copiar o diretório e ajustar os canais do smart, pode criar imagem ISO ou tar.gz como neste exemplo .

  linux101-beta9:/tmp # ls -la
  -rw-r--r--  1 root root  3181854600 Apr 10 00:38 osusebeta9-aptlocal.tar.gz

Também pode criar os canais via ambiente gráfico, segue os passos que utilizei em outra instalação com beta mais antigo, para adicionar os canais, utilizando o repositório do apt que estão na própria maquina.

Ambiente gráfico, chame smart --gui, clique em "Menu edit" -> channels -> New -> Detect channel in local path -> OK -> navegue até diretório que deseja adicionar, exemplo para o CD, /home/suse/aptsuse10/rpmcd1/suse, clique em OK e na tela seguinte informe um alias, exemplo "rpmcd1" depois em OK e atualizar, repetir o processo para cada CD ou repositório extra.

Cuidado!, na minha instalação tem comportamento estranho, funciona direitinho com os canais padrão da instalação habilitados, quando desabilitei todos os canais que pegam pacotes na internet e adicionei canais novos apontando para o repositório do apt que estão em sub-diretórios da mesma maquina, após atualizar a base de dados, não lista os pacotes instalados, lista tudo como disponíveis para instalação, algo muito estranho, pacotes instalados são listados como não instalados, até pacotes que instalei via smart continuam aparecendo na lista como não instalado, nesta instalação com apache2 instalado via Yast2, ao tentar reinstalar via smart (--gui) congelou a tela durante a instalação, pelo top não registra atividades, como também tenho o apt instalado, ao tentar instalar apache2 via apt, retorna a mensagem de pacote já instalado, parece que a base de dados do smart está com algum problema, não atualiza pacotes instalados se não tiver habilitado os canais da web, algo muito estranho que não tive tempo de procurar por mais detalhes, interessante que se habilitar todos os canais com acesso à internet, tudo volta ao normal, lista corretamente os pacotes instalados, meu interesse é manter os rpm que mais uso na própria maquina e não acessar internet, com os canais externos habilitados ele busca os pacotes na internet, por enquanto vou de apt que funciona e resolve meu problema, tem como alterar a prioridade e outras configurações, qualquer dia faço novas tentativas e arrumo este tutorial.

rpm-md

Exemplo de um endereço rpm-md, acesse este endereço e observe que tem o sub-diretório repodata/, isto identifica um repositório rpm-md.
http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.1/RPMS/

Neste endereço tem o rpm do superkaramba, exemplo de como criar canal para instalar este pacote e outros deste mesmo endereço.

  smart channel --add http://200.204.198.164/zago/smart/osuse101-rpm-md-gwdg.channel -y
  smart update
  smart install superkaramba
  # executar;
  ALT+F2 superkaramba
Prontinho, superkaramba em execução.

Excutei estes comandos em uma instalação do SUSE 10.1 x86_64 RC1, no endereço acima tem pacotes no diretório i686 e x86_64, automaticamente o smart selecionou o pacote da arquitetura x86_64.

  Installing packages (2):
    superkaramba-0.39-1.guru.suse101@x86_64        xmms-lib-1.2.10-100@x86_64

O que consta no manual do smart

  linux-msi64:/home/zago # smart channel --help-type rpm-md
  Tipo: rpm-md - MetaData RPM
  
  Repositório criado com o projeto rpm-metadata.
  
  Campos:
    alias (*)   - Identificação única para o canal.
    type (*)    - Tipo do canal
    name        - Nome do canal
    manual      - Se usado um valor verdadeiro, o canal será atualizado
                  somente quando manualmente selecionado.
    disabled    - Se usado um valor verdadeiro, o canal não será
                  utilizado.
    removable   - Se usado um valor verdadeiro, o canal será considerado
                  como estando disponível em uma mídia removível (cdrom,
                  etc).
    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.
    baseurl (*) - URL onde o subdiretório repodata/ é encontrado
  
  (*) Estes campos são necessários para este tipo.

Algumas URL com diretório repodata, para canais rpm-md

ftp://ftp.suse.com/pub/suse/i386/update/10.1/

Red carpet

Red carpet = tapete vermelho ???

Exemplo de como criar um canal no smart para utilizar canal do tipo red-carpet, na URL tem um o arquivo channels.xml.gz, observe a existencia deste arquvo nesta URL.
http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/

Neste endereço tem sub-diretório yast (10.1)
http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.1/

exemplo de como criar canal apontando para URL contendo o arquivochannels.xml.gz
  smart channel --add http://200.204.198.164/zago/smart/osuse101-red-carpet-gwdg.channel -y
  smart update

Configurou o canal sem mensagens de erro, na atualização não acrescenta os pacotes novos na listagem do smart, removi todos os canais exceto rpm-sys e mesmo assim não adiciona os pacotes da URL, pesquisei no arquivo channels.xml.gz, não encontrei referencias para minha instalação SUSE 10.1 x86_64, preciso testar em instalação com arquitetura i386 ... i686, ou descobrir onde errei, qualquer dia faço novos testes, a seguir copia do resultado dos comandos acima.

  linux-msi64:/home/zago # smart channel --add http://200.204.198.164/zago/smart/osuse101-red-carpet-gwdg.channel -y
  Buscando channel description...
  -> http://200.204.198.164/zago/smart/osuse101-red-carpet-gwdg.channel
  osuse101-red-carpet-gwdg.channel                 ################################################################## [100%]
  
  
  linux-msi64:/home/zago # smart update
  Carregando o cache...
  Atualizando cache...                             ################################################################## [100%]
  
  Buscando informações para 'OPENSUSE red-carpet canais de http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/'...
  -> http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/channels.xml.gz
  channels.xml.gz                                  ################################################################## [100%]
  
  Atualizando cache...                             ################################################################## [100%]
  
  Canais não possuem pacotes novos.
  Gravando o cache...

Resultado de smart channel --help-type red-carpet

  Tipo: red-carpet - Canal Red Carpet
  
  Canal para a ferramenta de pacotes Red Carpet.
  
  Campos:
    alias (*)      - Identificação única para o canal.
    type (*)       - Tipo do canal
    name           - Nome do canal
    manual         - Se usado um valor verdadeiro, o canal será
                     atualizado somente quando manualmente selecionado.
    disabled       - Se usado um valor verdadeiro, o canal não será
                     utilizado.
    removable      - Se usado um valor verdadeiro, o canal será
                     considerado como estando disponível em uma mídia
                     removível (cdrom, etc).
    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.
    baseurl (*)    - URL onde os pacotes são encontrados
    packageinfourl - URL para o packageinfo.xml.gz incluíndo o nome de
                     arquivo (opção pode ser omitida se o arquivo for
                     nomeado packageinfo.xml.gz e estiver dentro da url
                     base)
  
  (*) Estes campos são necessários para este tipo.

kubuntu

Kubuntu 7.04

Tenho a impressão que Kubuntu é somente uma pequena alteração no instalador do Ubuntu, algum script para alterar o nome e trocar Gnome por KDE.

Todos os pacotes do Kubuntu 7.04 çlkopsão de servidores Ubuntu. Todos os canais smart apontam para URL ubuntu, não encontrei servidores de pacotes para Kubuntu, o mesmo acontece com apt. (cat /etc/apt/sources.list). Todos endereços do sources.list apontam para URL do ubuntu.

Exemplo de um canal criado na instalação do smart.

  [aptsync-7ca031fba167798914404bcfc6862f34]
  type = apt-deb
  name = feisty - multiverse
  baseurl = http://br.archive.ubuntu.com/ubuntu/
  distribution = feisty
  components = multiverse

Tentando entender a estrutura de repositórios apt para explicar como criar canais smart

Primeira linha, nome do canal para smart, não entendi aquela especie de chave.

Segunda linha, tipo de repositório, indica servidor de pacotes Debian para apt.

Terceira linha, nome do canal, pode dar qualquer nome, não use acentos nem caracteres especiais.

Quarta linha, baseurl = http://br.archive.ubuntu.com/ubuntu/

Neste endereço tem um arquivo e varios sub-diretórios

   dists/
   indices/ 
   ls-lR.gz 
   pool/
   project/

distribution = feisty

Este feisty está dentro do sub-diretório dists.

http://br.archive.ubuntu.com/ubuntu/dists/feisty/

Este endereço parece indicar a a distribuição (distribution = feisty) seu sub-diretório multiverse parece indicar componentes (components = multiverse), confesso que tenho muita dficuldade para entender e lembrar do sgnificado destes nomes, mas vou tentar entender.

Dentro do diretório feisty tem estes arquivos e diretórios

  Contents-amd64.gz
   Contents-hppa.gz
   Contents-i386.gz 
   Contents-ia64.gz
   Contents-powerpc.gz
   Contents-sparc.gz 
   Release  
   Release.gpg 
   main/      
   multiverse/   
   restricted/   
  universe/    

Dentro do diretório multiverse tem estes arquivos e diretórios

   binary-amd64/ 
  binary-i386/
   binary-powerpc/
   binary-sparc/
   debian-installer/ 
   i18n/
   source/     

Dentro do arquivo http://br.archive.ubuntu.com/ubuntu/dists/feisty/Release, consta esta indicação.

  Origin: Ubuntu
  Label: Ubuntu
  Suite: feisty
  Version: 7.04
  Codename: feisty
  Date: Tue, 17 Apr 2007 18:14:27 UTC
  Architectures: amd64 hppa i386 ia64 powerpc sparc
  Components: main restricted universe multiverse
  Description: Ubuntu Feisty 7.04

Não entendi esta estrutura, no diretório multiverse tem pacotes para diversas arquiteturas, não sei informar se o smart resolve isto ou se preciso informar minha arquitetura. Qualquer dia continuo, preciso resolver estas dúvidas para criar canais apontando para outros repositórios.

Servidores Debian - pacotes .deb

Sobre smart no Debian veja em.
http://packages.debian.org/unstable/source/smart

Não entendi a documentação, não encontrei exemplos, na tentativa de erro e acerto não consegui usar smart no Debian.

FC 7

``Minha colinha ``

Instalação no x86_64

  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
  smart channel --add http://200.204.198.164/zago/smart/fc7os64-rpm-md.channel -y
  smart update

Ver a lista de mirrors (espelhos), procure nos arquivos .txt deste endereço.

http://mirrors.fedoraproject.org/

Tenha muito cuidado com a versão e arquitetura que fazem parte do nome do arquivo. Neste endereço tem .txt indicando mirror de varias versões do Fedora. No arquivo

http://mirrors.fedoraproject.org/fedora-7-US-x86_64.txt

tem endereços de diversos espelhos para FC7 x86_64, como exemplo este do kernel.org

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

Observe o 7 da versão FC7 e x86_64 para arquitetura de 64 bits. Como neste endereço tem o diretório repodata, para criar um canal apontando para este espelho basta copiar e colar as linhas abaixo, tudo de uma única vez.

  smart channel --add fc7os64-kernelorg.channel \
  type=rpm-md \
  name="fc7os64-kernelorg" \
  baseurl=http://mirrors.kernel.org/fedora/releases/7/Everything/x86_64/os

`` smart update `` para atualizar a lista de pacotes e prontinho.

Para criar outros canais, basta alterar no exemplo acima, nome e URL.

Ou para criar canais apontando para todos servidores listados em;

http://mirrors.fedoraproject.org/fedora-7-US-x86_64.txt

smart channel --add http://200.204.198.164/zago/smart/fc7os64-rpm-md.channel -y

Veja mais nos arquivos de configuração do yum, procure por yum em /etc/ e no arquivo /etc/yum.repos.d/fedora.repo, observe que usa variável na indicação da arquitetura e versão, navegue nestes endereços até encontrar o arquivo repodata que correspondente a sua versão e arquitetura

CentOS 5.0

CentOS 5.0 - x86_64

``Minha colinha ``

  rpm -ivh --nodeps http://dl.atrpms.net/all/smart-0.50-45.0.el5.x86_64.rpm
  smart update
  smart channel --add http://200.204.198.164/zago/smart/mirror-centosorg-rpm-md.channel -y
  smart channel --add http://200.204.198.164/zago/smart/mirror-telmexchile-rpm-md.channel -y
  smart update

Explicando;

CentOS instala pacotes el, não econtrei smart no CentOS, só consegui instalar este gerenciador de pacotes com estas linhas de comando.

  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
  
  Ou
  
  rpm -ivh --nodeps http://dl.atrpms.net/all/smart-0.50-45.0.el5.x86_64.rpm
  

Criou somente o canal com os pacotes instalados, não adicionou canais apontando para servidores na web, o mesmo procedimento em outra instalação de arquitetura i386 criou canais apontando para repositórios do RH Enterprise 5.

smart channel --show

  [rpm-db]
  type = rpm-sys
  name = RPM Database

Mesmo depois de instalar os demais pacotes não adiciona canais.

  smart install http://dl.atrpms.net/all/smart-update-0.50-45.0.el5.i386.rpm 
  smart install http://dl.atrpms.net/all/smart-gui-0.50-45.0.el5.x86_64.rpm 

A solução é criar canais manualmente, para descobrir os mirros, pode inciar pelos arquivos de configuração do yum, estão dentro de /etc

Cmo inicio, tem rpm neste mirror.

http://mirror.centos.org/centos/5/

http://mirror.centos.org/centos/5/os/x86_64/

http://centos.karan.org/el5/extras/stable/x86_64/RPMS/

Um exemplo para adicionar canal, tem que copiar e colar tudo de uma vez, ou tudo em uma única linha de comando.

  smart channel --add http://200.204.198.164/zago/smart/mirror-centosorg-rpm-md.channel -y
  smart update

Outro formato para copiar e colar na linha de comando, tem o mesmo resultado da linha de comando acima que adiciona "mirror-centosorg-rpm-md.channel"..

  smart channel --add mirror-centosorg-rpm-md \
  type=rpm-md \
  name="teste2" \
  baseurl=http://mirror.centos.org/centos/5/os/x86_64/

Veja o resultado

  [root@a8n8 ~]# smart channel --add mirror-centosorg-rpm-md \
  > type=rpm-md \
  > name="teste2" \
  > baseurl=http://mirror.centos.org/centos/5/os/x86_64/
  
  Apelido: mirror-centosorg-rpm-md
  Tipo: rpm-md
  Nome: teste2
  URL Base: http://mirror.centos.org/centos/5/os/x86_64/
  
  Incluir este canal? (s/N): s
  
  
  [root@a8n8 ~]# smart update
  Carregando o cache...
  Atualizando cache...                              ################################################################### [100%]
  
  Buscando informações para 'teste2'...
  -> http://mirror.centos.org/centos/5/os/x86_64/repodata/repomd.xml
  repomd.xml                                        ################################################################### [ 16%]
  -> http://mirror.centos.org/centos/5/os/x86_64/repodata/primary.xml.gz
  -> http://mirror.centos.org/centos/5/os/x86_64/repodata/filelists.xml.gz
  primary.xml.gz                                    ################################################################### [ 33%]
  filelists.xml.gz                                  ################################################################### [ 50%]
  
  Buscando informações para 'teste karan repodata'...
  -> http://centos.karan.org/el5/extras/stable/x86_64/RPMS/repodata/repomd.xml
  repomd.xml                                        ################################################################### [ 66%]
  
  Atualizando cache...                              ################################################################### [100%]
  
  Canais possuem 2254 pacotes novos.
  Gravando o cache...

smart channel --show mostra informação do canal neste formato

  [mirror-centosorg-rpm-md]
  type = rpm-md
  name = teste2
  baseurl = http://mirror.centos.org/centos/5/os/x86_64/

Teste de funcionamento, instalar servidor web, no resultado abaixo mostra que instalou sem problema algum

  [root@a8n8 ~]# smart install httpd
  Carregando o cache...
  Atualizando cache...                              ################################################################### [100%]
  
  Calculando transação...
  
  Instalando pacotes (4):
    apr-1.2.7-11@x86_64                      httpd-2.2.3-6.el5.centos.1@x86_64
    apr-util-1.2.7-6@x86_64                  postgresql-libs-8.1.4-1.1@x86_64
  
  1.5MB de arquivos de pacotes são necessários. 3.9MB serão utilizados.
  
  Confirma mudanças? (S/n): S
  
  Buscando pacotes...
  -> http://mirror.centos.org/centos/5/os/x86_64/CentOS/apr-1.2.7-11.x86_64.rpm
  -> http://mirror.centos.org/centos/5/os/x86_64/CentOS/postgresql-libs-8.1.4-1.1.x86_64.rpm
  -> http://mirror.centos.org/centos/5/os/x86_64/CentOS/httpd-2.2.3-6.el5.centos.1.x86_64.rpm
  -> http://mirror.centos.org/centos/5/os/x86_64/CentOS/apr-util-1.2.7-6.x86_64.rpm
  apr-util-1.2.7-6.x86_64.rpm                       ################################################################### [ 25%]
  postgresql-libs-8.1.4-1.1.x86_64.rpm              ################################################################### [ 50%]
  apr-1.2.7-11.x86_64.rpm                           ################################################################### [ 75%]
  httpd-2.2.3-6.el5.centos.1.x86_64.rpm             ################################################################### [100%]
  
  
  Efetuando transação...
  Preparando...                                     ################################################################### [  0%]
     1:Instalando apr                               ################################################################### [ 25%]
     2:Instalando postgresql-libs                   ################################################################### [ 50%]
     3:Instalando apr-util                          ################################################################### [ 75%]
     4:Instalando httpd                             ################################################################### [100%]
  
  
  [root@a8n8 ~]#

Outro exemplo.

  smart channel --add mirror-karan-repodata \
  type=rpm-md \
  name="teste karan repodata" \
  baseurl=http://centos.karan.org/el5/extras/stable/x86_64/RPMS/

Muito estranho, este exemplo adicionou o canal, sem mensagens de erro, mas continua listando somente os pacotes instalados, não adiciona a lista pacotes do servidor.

CentOS 5.0 - i386

``Minha colinha ``

  rpm -ivh --nodeps http://dl.atrpms.net/all/smart-0.50-45.0.el5.x86_64.rpm
  smart update
  smart channel --add http://200.204.198.164/zago/smart/mirrori386-telmexchile-rpm-md.channel -y
  smart update

Fique atento a arquitetura, não é possível instalar pacotes da arquitetura x86_64 em instalações i386, sempre verifique a compatibilidade da arquitetura do pacote com sua instalação.

Resumo, instalar smart arquitetura i386

  rpm -ivh --nodeps http://dl.atrpms.net/el5-i386/atrpms/stable/smart-0.50-45.0.el5.i386.rpm
  smart update
  smart install http://dl.atrpms.net/el5-i386/atrpms/stable/smart-gui-0.50-45.0.el5.i386.rpm

resultado, instala canais apontando para repositorios RH Enterprise 5

  [root@voip smart]# rpm -ivh --nodeps http://dl.atrpms.net/el5-i386/atrpms/stable/smart-0.50-45.0.el5.i386.rpm
  A obter o http://dl.atrpms.net/el5-i386/atrpms/stable/smart-0.50-45.0.el5.i386.rpm
  aviso: /var/tmp/rpm-xfer.jz7cNx: Header V3 DSA signature: NOKEY, key ID 66534c2b
  A preparar...               ########################################### [100%]
     1:smart                  ########################################### [100%]
  [root@voip smart]# smart update
  Novo canal 'Extra packages from RPMforge.net for Red Hat Enterprise 5 - i386 - dag (rpmforge)' detectado.
  Incluí-lo? (S/n): S
  
  Atualizando cache...                              ################################################################### [100%]
  
  Buscando informações para 'Extra packages from RPMforge.net for Red Hat Enterprise 5 - i386 - dag'...
  -> http://apt.sw.be/redhat/el5/en/i386/dag/repodata/repomd.xml
  repomd.xml                                        ################################################################### [ 33%]
  -> http://apt.sw.be/redhat/el5/en/i386/dag/repodata/filelists.xml.gz
  -> http://apt.sw.be/redhat/el5/en/i386/dag/repodata/primary.xml.gz
  primary.xml.gz                                    ################################################################### [ 66%]
  filelists.xml.gz                                  ################################################################### [100%]
  
  Atualizando cache...                              ################################################################### [100%]
  
  Canais possuem 3684 pacotes novos.
  Gravando o cache...
  
  
  [root@voip smart]# smart channel --show
  [rpm-db]
  type = rpm-sys
  name = RPM Database
  
  [rpmforge]
  type = rpm-md
  name = Extra packages from RPMforge.net for Red Hat Enterprise 5 - i386 - dag
  baseurl = http://apt.sw.be/redhat/el5/en/i386/dag

SUSE 10 - exemplo para atualizar KDE 3.5.1

Edite o canal de forma que aponte para os pacotes que deseja atualizar, quando incluir endereços com pacotes do KDE 3.5.1, então este será atualizado, veja a dica sobre atualização de canal, não esqueça das diferenças de arquitetura i?86 x x86_64, 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/

Na instalação o Smart vem somente com suser-guru, para incluir os demais, 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, pegue somente a parte que vem depois de RPMS. e descarte o RPMS e 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.

Fazer esta alteração no Smart, no konsole execute smart --gui, clique em Edit -> Channels, selecione o canal sobre suser-guru e acrescente em componentes os diretórios desejado, use espaço como separador, veja a tela da minha configuração, observe que alterei somente em Components, acrescentei gnome kde :
http://www.zago.eti.br/figuras/smart/smart-update.png

Lembrando que a cada alteração precisa atualizar a base de dados antes de tentar qualquer instalação ou atualização de pacotes, pode continuar na interface gráfica e fazer atualização de todos os pacotes, na minha instalação ocorreu alguns congelamento e tive que reiniciar o X, não sei informar porque ocorreu, pode ser problema externo ou não. Não detectei o mesmo problema na linha de comando, pode atualizar com ambiente gráfico rodado, em casos de atualização completa prefiro via linha de comando, iniciar em modo texto (Falsave), login como root, se prepare porque demora, são quase 500MB de download..., execute;
  smart update
  smart upgrade

Prontinho, exit para sair do console de root, login como user e chame o ambiente gráfico, SUSE 10 atualizado e rodando KDE 3.5, em Português, vale a pena, gostei...

Outro exemplo, em modo texto, na maquina local ou remotamente via ssh

Muito simples, acessar a maquina remota via ssh, listar os canais para pegar o nome e editar o canal, exemplo para incluir dois componentes ("gnome kde") em um canal já existente, como root no console remoto;

  smart channel --show
  smart channel --edit nomedocannal.channel

Quem criou o canal a partir de arquivo em /etc/smart/channels, pode editar diretamente no arquivo do canal para incluir "gnome kde", veja a sequencia de comandos e resultados remotamente via ssh.

  # antes da alteração
  
  linux:/etc/smart/channels # cat suser-guru-gwdg.channel
  [guru-apt]
  name = suser-guru 3rd party package repository for SUSE Linux on ftp.gwdg.de
  baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
  type = apt-rpm
  components = suser-guru

Com seu editor preferido, altere a linha componets para acrescentar gnome e kde, no meu ficou assim; components = suser-guru gnome kde

depois de salvar, atualize a base de dados update e depois atualize o sistema com upgrade, veja o resultado;

  linux:/etc/smart/channels # smart update
  Change in field 'Components' of channel 'suser-guru 3rd party package repository for SUSE Linux on ftp.gwdg.de (guru-apt)' detected.
  Old value: suser-guru
  New value: suser-guru gnome kde
  Replace current value? (Y/n): Y

smart upgrade -y

Funcionou! atualizou o KDE para 3.5.1....., tudo em modo texto e remotamente via ssh...

indicações

Tutoriais e FAQ sobre APT, criar ISO e gravar CD/DVD.
http://www.zago.eti.br/apt.txt
http://www.zago.eti.br/apt-local.txt
http://www.zago.eti.br/cdr-dvdr.html
Tutorial Smart - parte 1
http://www.zago.eti.br/smart-dicas.html

Consulte o FAQ o tutorial especifico sobre sua distro, algumas indicações em;
http://www.zago.eti.br/distro/A-distro.html
Página principal deste site (FAQ)
http://www.zago.eti.br/menu.html