você está aqui: Home  → Arquivo de Mensagens

Editar o control de um pacote Debian

Colaboração: Leandro Augusto Fogolin Pereira

Data de Publicação: 09 de Dezembro de 2005

Em um pacote Debian, as informações de dependência, descrições, versões, dentre outras coisas, ficam no arquivo "control", dentro do arquivo .deb -- que nada mais é do que um arquivo "ar" que contém dois arquivos, o "control.tar.gz" e o "data.tar.gz", que é o pacote em si.

Se precisar editar o control de um pacote Debian, pode usar o seguinte shell script. Testei em apenas um pacote (o amule, já que na época que o escrevi, estava com uns bugs de empacotamento no Ubuntu), para corrigir um problema de dependência.

Seu uso é apenas recomendado em casos de "emergência"; por exemplo, quando você possuir a certeza de que uma certa dependência está com o nome errado mas está instalada, e seu conteúdo for o correto. O uso indiscriminado de um pacote instalado com um script alterado pode causar problemas de consistência no sistema de gerenciamento de pacotes...

  #!/bin/bash
  
  CURDIR=$( pwd )
  TMPDIR=$( mktemp -d )
  TMPLST=$( mktemp )
  
  DEB="$CURDIR/$1"
  
  cd $TMPDIR
  
  ar -x "$DEB" control.tar.gz
  tar -zxvf control.tar.gz | grep -v "./$" > $TMPLST
  rm -f control.tar.gz
  cp control control.bak
  
  editor control
  
  ( diff control control.bak > /dev/null ) || (
         echo "Found difference -- updating control.tar.gz in $DEB."
                tar czf control.tar.gz $( cat $TMPLST )
               ar -r "$DEB" control.tar.gz
              echo "Done. =)"
      )
  
      rm -rf $TMPDIR $TMPLIST
      cd $CURDIR
  

É só salvar por exemplo, em um arquivo chamado editcontrol.sh e chamá-lo com o nome do pacote como primeiro parâmetro.



Veja a relação completa dos artigos de Leandro Augusto Fogolin Pereira

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script