Editar o “control” de um pacote Debian

Se precisar editar o “control” de um pacote Debian, pode usar o seguinte shell script. Testei em apenas um pacote (o amule, já que está com uns bugs de empacotamento no Ubuntu), para corrigir um problema de dependência. Isso aqui na verdade é “throw-away code”, mas pode ser que alguém ache isso útil — e fica mais fácil encontrá-lo depois se estiver no meu blog. :)

#!/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.

Leave a Comment