Проблема с Ubuntu: отсутствует ключевой пакет, это libpam -cgfs
Похоже, вы хотите знать, как переименовать пакет. Есть два способа сделать это. В этом примере я собираюсь изменить имя cowsay
на mysay
Загрузите исходный пакет debian (или ubuntu ), переименуйте файлы соответствующим образом, замените старое имя новым именем в каталоге debian/*
(, это то, что делают строки sed
, затем создайте его с помощью dpkg-buildpackage
.
Будьте осторожны, потому что некоторые пакеты могут иметь правила сборки, которые зависят от имени пакета и могут быть не такими тривиальными, как cowsay. Это, пожалуй, самый сложный вариант.
apt source cowsay
mv cowsay-3.03+dfsg2 mysay-3.03+dfsg2
mv cowsay_3.03+dfsg2-8.dsc mysay_3.03+dfsg2-8.dsc
mv cowsay_3.03+dfsg2.orig.tar.gz mysay_3.03+dfsg2.orig.tar.gz
cd mysay-3.03+dfsg2/
sed -i 's/\bcowsay\b/mysay/g' debian/changelog debian/control
sed -i 's./debian/cowsay./debian/mysay.g' debian/rules
dpkg-buildpackage -uc -us
Получите файл *.deb, который вы хотите вручную разделить на части, отредактируйте файл control
, а затем соберите его обратно.
apt download cowsay
mkdir mysay && cd mysay
# Split everything up
ar -x../cowsay_3.03+dfsg2-8_all.deb
mkdir control
tar -xf control.tar.xz -C control
# CHange the package name
sed -i 's/cowsay/mysay/' control/control
# Put the control file back togeather
cd control
tar -cf control.tar.xz *
mv control.tar.xz../
cd..
rm -r control
# Put the rest back togeather
ar r../mysay_3.03+dfsg2-8_all.deb debian-binary control.tar.xz data.tar.xz
Это упрощает процесс повторного -комбинирования. Это, пожалуй, самый простой метод.
apt download cowsay
ar x cowsay_3.03+dfsg2-8_all.deb
mkdir -p mysay/DEBIAN
tar -xf control.tar.xz -C mysay/DEBIAN
tar -xf data.tar.xz -C mysay/
sed -i 's/cowsay/mysay/' mysay/DEBIAN/control
dpkg-deb -b mysay
Несколько заключительных замечаний:
Если вы попытаетесь установить cowsay
и mysay
на одном компьютере, один из пакетов завершится ошибкой. Это потому, что они оба предоставляют одни и те же файлы, поэтому ваша система не может знать, кому они принадлежат. Способ сделать это надежным — добавить Conflicts: cowsay
в управляющий файл mysay
.
Переименование пакетов немного странно. Это обязательно вызовет конфликты, упомянутые выше. Я не уверен, что могу представить случай, когда это необходимо.