dpkg-deb строит недопустимый пакет

Я также рассмотрел бы шаг в сторону и используя:

VirtualBox - для полностью разделенных клиентских виртуальных машин с хоста или Docker в Windows - для контейнеризации отдельных приложений или рабочего стола. (К сожалению, пока не устанавливается прямо в файловую систему Windows.)

Очевидно, что для обоих из них требуется эффективная технология виртуализации в вашем наборе микросхем.

0
задан 28 December 2017 в 19:06

2 ответа

Во-первых, я должен указать на следующее: dpkg-deb - хакерский подход к созданию пакета. Он следует только минимальному минимуму и зависит от существующих системных библиотек как от зависимостей сборки. Это, в свою очередь, не очень надежный способ создания пакетов, которые вы хотите распространять вне вашей конкретной системы по этой причине, среди прочих (например, dpkg версия и несоответствия требований из-за стандартов Debian, требуемых в данной системе). [ ! d0]

Вот почему Ubuntu Packaging Guide рекомендует полностью создавать пакеты внутри pbuilder и после шаблонов dh_make для новых пакетов (которые фактически фактически извлекают данные из руководства по упаковке Debian для некоторых бит, хе)

Теперь я применил очень простой подход к упаковке, и сделал очень простой пакет, содержащий только один скрипт.

Вы заметите, что у меня есть немного больше в моем каталоге DEBIAN/. Большинство файлов здесь - это файлы запаса, созданные с помощью dh_make, как если бы я начинал следовать руководству по упаковке для создания пакета. Тем не менее, я просто переименовал debian/, который он создает в DEBIAN/, сохранил файл install, но, в частности, рассказал ему, что мне нужно было сделать с установкой, сохранил файл postinst, потому что я слишком ленив к chmod +x сценарий перед установкой (поэтому скрипт postinst установит его как исполняемый файл) и т. д. Вы можете посмотреть конкретные данные в свое время.

Теперь, с вышеуказанной структурой пакета, в контейнере 14.04 LXD (потому что я запускаю 16.04 везде, поэтому LXD-изображения помогают мне иметь более старые версии для тестирования вещей), я побежал dpkg-deb и имел некоторую приятность:

root@trusty-deb-tests:~/temptests# dpkg-deb -b testingdata-0.0.1/ dpkg-deb: warning: 'testingdata-0.0.1//DEBIAN/control' contains user-defined field 'Build-Depends' dpkg-deb: warning: 'testingdata-0.0.1//DEBIAN/control' contains user-defined field 'Standards-Version' dpkg-deb: warning: ignoring 2 warnings about the control file(s) dpkg-deb: building package `testingdata' in `testingdata-0.0.1.deb'. root@trusty-deb-tests:~/temptests# ls testingdata-0.0.1 testingdata-0.0.1.deb root@trusty-deb-tests:~/temptests# dpkg-deb -c testingdata-0.0.1.deb drwxrwxr-x root/root 0 2017-12-28 15:09 ./ drwxrwxr-x root/root 0 2017-12-28 15:09 ./dist/ -rw-r--r-- root/root 15 2017-12-28 15:09 ./dist/hellothere.sh root@trusty-deb-tests:~/temptests#

Итак, во-первых, я Полагаю, очень нечетно в вашем пакете. Даже если я удаляю все, кроме файла управления на моей стороне, он по-прежнему работает правильно, хотя он не знает, как писать файлы, и не распознает, как писать в нужное место с моим «тестом».

Что-то особенное в вашем пакете разорено. Я бы посоветовал вам «начать» с базового уровня, который у меня есть в том репозитории GitHub, с которым я связан, и проделать свой путь оттуда. (Наличие файла install внутри папки DEBIAN также является хорошей практикой, поэтому вы знаете, что устанавливает где).

0
ответ дан 18 July 2018 в 00:18

Во-первых, я должен указать на следующее: dpkg-deb - хакерский подход к созданию пакета. Он следует только минимальному минимуму и зависит от существующих системных библиотек как от зависимостей сборки. Это, в свою очередь, не очень надежный способ создания пакетов, которые вы хотите распространять вне вашей конкретной системы по этой причине, среди прочих (например, dpkg версия и несоответствия требований из-за стандартов Debian, требуемых в данной системе). [ ! d0]

Вот почему Ubuntu Packaging Guide рекомендует полностью создавать пакеты внутри pbuilder и после шаблонов dh_make для новых пакетов (которые фактически фактически извлекают данные из руководства по упаковке Debian для некоторых бит, хе)

Теперь я применил очень простой подход к упаковке, и сделал очень простой пакет, содержащий только один скрипт.

Вы заметите, что у меня есть немного больше в моем каталоге DEBIAN/. Большинство файлов здесь - это файлы запаса, созданные с помощью dh_make, как если бы я начинал следовать руководству по упаковке для создания пакета. Тем не менее, я просто переименовал debian/, который он создает в DEBIAN/, сохранил файл install, но, в частности, рассказал ему, что мне нужно было сделать с установкой, сохранил файл postinst, потому что я слишком ленив к chmod +x сценарий перед установкой (поэтому скрипт postinst установит его как исполняемый файл) и т. д. Вы можете посмотреть конкретные данные в свое время.

Теперь, с вышеуказанной структурой пакета, в контейнере 14.04 LXD (потому что я запускаю 16.04 везде, поэтому LXD-изображения помогают мне иметь более старые версии для тестирования вещей), я побежал dpkg-deb и имел некоторую приятность:

root@trusty-deb-tests:~/temptests# dpkg-deb -b testingdata-0.0.1/ dpkg-deb: warning: 'testingdata-0.0.1//DEBIAN/control' contains user-defined field 'Build-Depends' dpkg-deb: warning: 'testingdata-0.0.1//DEBIAN/control' contains user-defined field 'Standards-Version' dpkg-deb: warning: ignoring 2 warnings about the control file(s) dpkg-deb: building package `testingdata' in `testingdata-0.0.1.deb'. root@trusty-deb-tests:~/temptests# ls testingdata-0.0.1 testingdata-0.0.1.deb root@trusty-deb-tests:~/temptests# dpkg-deb -c testingdata-0.0.1.deb drwxrwxr-x root/root 0 2017-12-28 15:09 ./ drwxrwxr-x root/root 0 2017-12-28 15:09 ./dist/ -rw-r--r-- root/root 15 2017-12-28 15:09 ./dist/hellothere.sh root@trusty-deb-tests:~/temptests#

Итак, во-первых, я Полагаю, очень нечетно в вашем пакете. Даже если я удаляю все, кроме файла управления на моей стороне, он по-прежнему работает правильно, хотя он не знает, как писать файлы, и не распознает, как писать в нужное место с моим «тестом».

Что-то особенное в вашем пакете разорено. Я бы посоветовал вам «начать» с базового уровня, который у меня есть в том репозитории GitHub, с которым я связан, и проделать свой путь оттуда. (Наличие файла install внутри папки DEBIAN также является хорошей практикой, поэтому вы знаете, что устанавливает где).

0
ответ дан 24 July 2018 в 17:11

Другие вопросы по тегам:

Похожие вопросы: