У меня есть пакет, который имеет ошибку, и я должен изменить ее и переупаковать ее, Таким образом, это - то, как я делаю. Есть ли какие-либо другие быстрые методы?
Перечислите/Просмотрите только (файлы драйверов или приложения)
ar tv DesktopVideo-8.0.1-amd64.deb
rw-r--r-- 0/0 4 Sep 25 07:35 2011 debian-binary
rw-r--r-- 0/0 14942208 Sep 25 07:35 2011 control.tar.gz
rw-r--r-- 0/0 102 Sep 25 07:35 2011 data.tar.gz
Извлечение
ar x DesktopVideo-8.0.1-amd64.deb
control.tar.gz data.tar.gz debian-binary
Извлечение tar.gz
tar xvfz control.tar.gz
tar xvfz data.tar.gz
;; modify my codes and updates
Переупакуйте/Восстановите эту спину
mkdir -p debian/DEBIAN
; step 1
cp -R ./debian-binary debina/DEBIAN
cp -R ./control debian/DEBIAN
cp -R ./control debian/DEBIAN
cp -R ./control debian/DEBIAN
; step 2
cp -R ./etc debian/DEBIAN
cp -R ./usr debian/DEBIAN
Сделайте.DEB теперь
; this is how the skeleton look like before applying --build
root@desktop:~/Downloads/test# ls
control.tar.gz data.tar.gz debian debian-binary etc usr
root@desktop:~/Downloads/test# dpkg-deb --build debian
dpkg-deb: building package `desktopvideo' in `debian.deb'.
- Неудавшийся
# dpkg -i DesktopVideo-8.0.1-amd64.deb
dpkg: error processing DesktopVideo-8.0.1-amd64.deb (--install):
unable to open file '/var/lib/dpkg/tmp.ci//etc': Is a directory
Errors were encountered while processing:
DesktopVideo-8.0.1-amd64.deb
Если вы еще этого не сделали, установите инструменты сборки: sudo apt-get install build-essential
Вы можете использовать команду apt-get source DesktopVideo
, чтобы загрузить исходные файлы, файлы diff и все другие файлы упаковки, связанные с этим deb, в Текущий каталог. Затем примените ваш патч, добавьте новую запись в файл журнала dch -i
, затем используйте fakeroot и dpkg для создания пакета dpkg-buildpackage -rfakeroot -us -uc
Вы должны быть в состоянии получить исходный код пакета (вы получили только двоичный файл) с помощью apt-get -d source packagename
Затем вы можете возиться с ним и использовать debuild
, чтобы построить его снова.
cp -R ./debian-binary debina/DEBIAN
, вы явно не сообщаете, что именно), и ошибку (cp -R
не сохраняет права собственности и права доступа, вам понадобится cp -Rp
или cp -a
от имени root).
Лучший способ изменить пакет - получить исходный код пакета (apt-get source DesktopVideo
). Измените источник, затем добавьте запись в журнал изменений пакета, изменив номер версии так, чтобы ваша версия отличалась от официального номера версии. Вот пример необходимых шагов (Debian и Ubuntu работают одинаково в этом отношении).
Если у вас нет исходного кода или вы не хотите перекомпилировать, вы можете установить пакет, а затем использовать dpkg-divert
, чтобы убрать файлы с ошибками и заменить это по вашей собственной версии. dpkg-divert
говорит менеджеру пакета поместить файл из данного пакета в другое место. Вот пример его использования.
Если у вас нет источника пакета, и вам нужно развернуть исправление на нескольких машинах, вы можете установить пакет, затем изменить файл с ошибками и собрать новый пакет с помощью dpkg-repack
[ 1111]. Это скорее акт отчаяния, чем надежный способ управления пакетами; Я рекомендую исправить исходный код и развернуть ваш скомпилированный пакет, если это возможно.