Как создать пакет apt или.deb для Debian?

Ошибка вида

Run-time dependency goa-1.0 found: NO (tried pkgconfig and cmake)

означает, что сборка ищет файл с именемgoa-1.0.pc(дляpkgconfig)или Findgoa-1.0.cmakeфайл (, который не является тем, как будет выглядеть зависимость CMake , но система сборки не могу этого знать ).

Чтобы найти это в Lubuntu, установите apt-file, обновите индексы apt, затем запустите

apt-file search goa-1.0.pc

Это покажет, что вам нужно установить libgoa-1.0-dev. Для json-glib-1.0тот же процесс покажет, что вам нужно установить libjson-glib-dev.

Установите оба пакета, и вы обнаружите, что эти ошибки сборки были исправлены.

Для такой программы, как Déjà Dup, упакованной в Debian, вы можете быстро увидеть список необходимых зависимостей сборки, просмотрев запись Build-Dependsв debian/controlфайле .

0
25.11.2020, 00:57
2 ответа

How do you make a package?

У меня есть три решения для вас:

  1. dh_make. Именно так составляются большинство официальных архивов Debian. Если у вас возникли проблемы с выполнением официальных руководств, это не потому, что они плохо написаны (, а ), это просто сложный процесс, поэтому я не уверен, что видеоурок тоже поможет. гораздо более. Вам просто нужно приложить усилия и не расстраиваться, если это займет пару недель. dh_makeгенерирует скелет каталога debian/*. Заполните свои debian/copyright, debian/control, debian/rules, debian/{post|pre}{inst|rm}и т. д. Затем используйте dpkg-buildpackage, чтобы сделать пакет. Если у вас есть вопросы по поводу конкретной ошибки, мы можем помочь ответить на них, но я не могу написать в этом ответе руководство, которое было бы понятнее, чем официальная документация.
  2. dpkg-deb:Это НАМНОГО проще. После создания проекта просто выполните make install DESTDIR=/tmp/path. Поместите каталог DEBIANпо тому же пути с тем же DEBIAN/control, любыми сценариями поддержки, авторскими правами и т. д. Основное отличие состоит в том, что вам не нужен файл rules, поскольку пакет уже собран. Затем запустите dpkg-deb -b.
  3. cpack:Если вы уже используете cmakeв качестве системы сборки, вам просто нужно установить несколькоCPACK_*переменных и несколькоCPACK_DEB_*переменных , затем после запуска cmake.. && cmake --build.просто запустите cpack.

Is there an IDE that makes it easier to make packages?

Нет. Ваша целевая платформа (, то есть Debian ), не должна диктовать вашу IDE. Используйте IDE, наиболее подходящую для вашей платформы. Большая часть моей работы по упаковке выполняется в терминале.

What programming languages do I have to learn to make this?

Если вы собираетесь использовать решение 1 выше, вам следует знать make, чтобы вы могли написать файл правил.

Are there any tutorials online?

Если вы используете решение 1, то вашим лучшим другом является Руководство нового сопровождающего Debian . У вас есть ссылка на главу 6, но я думаю, что главы 2 -5 более фундаментальны как для решения 1, так и для решения 2.

Если у вас остались проблемы с упаковкой, задайте более конкретный вопрос и укажите:

  1. Как вы упаковываете.
  2. Что вы создаете и ваша система сборки (например. библиотека python, java -maven, библиотека C, приложение C++, использование cmake, autoconf, pybuild и т. д.)
  3. С чем у вас проблемы.
0
18.03.2021, 22:47

Не думаю, что здесь можно получить один ответ. Учебники, которые вы перечислили, хороши и содержат все, что вам нужно, я сомневаюсь, что вы сможете найти лучший учебник, чем эти.

Я могу добавить еще один к списку.:https://wiki.debian.org/Packaging/IntroЯ считаю, что этот вариант лучше всего подходит для начала упаковки существующего программного обеспечения.

Я предлагаю начать с упаковки этих руководств и задать конкретный вопрос, если вы столкнетесь с проблемой, но сложно ответить на такой широкий вопрос.

What programming languages do I have to learn to make this?

Нет. Некоторое базовое знание сценариев оболочки всегда будет плюсом, но это не обязательно. Вы должны быть знакомы с языком, на котором написана программа, которую вы пытаетесь упаковать.

Is there an IDE that makes it easier to make packages?

Нет, насколько мне известно. Есть несколько вспомогательных инструментов, которые вы можете использовать:https://wiki.debian.org/AutomaticPackagingTools

0
18.03.2021, 22:47

Теги

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