Я также рассмотрел бы шаг в сторону и используя:
VirtualBox - для полностью разделенных клиентских виртуальных машин с хоста или Docker в Windows - для контейнеризации отдельных приложений или рабочего стола. (К сожалению, пока не устанавливается прямо в файловую систему Windows.)Очевидно, что для обоих из них требуется эффективная технология виртуализации в вашем наборе микросхем.
Во-первых, я должен указать на следующее: 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 также является хорошей практикой, поэтому вы знаете, что устанавливает где).
Во-первых, я должен указать на следующее: 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 также является хорошей практикой, поэтому вы знаете, что устанавливает где).