Создание двоичного файла go в качестве двоичного пакета debian для пользовательского репозитория - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь упаковать двоичный файл, записанный в Go, как двоичный пакет debian / ubuntu. Это будет доступно для загрузки с пользовательского веб-сервера и apt key.

Я - очень - запутался.

Сначала я посмотрел https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging. Это выглядит как исчерпывающее, не говоря уже о слишком сложном.

Что меня смущает, так это то, что файл debian/rules содержит команду make. Но у нас нет Makefile, мне нужно его создать?

На самом деле я на шаге debuild -us -uc, и он, очевидно, потерпел неудачу.

Тогда я увидел это : https://askubuntu.com/a/251892, где написано:

Избегайте бюрократии Debian, просто создав двоичный файл: dpkg-buildpackage -b

Я сделал что, и команда выполнена, но, глядя на сгенерированный пакет, он не содержит никаких двоичных файлов, только файл changelog.gz и copyright в папке приложения ниже /usr/share/doc.

Итак, я я заблудился, я понятия не имею, какой учебник использовать здесь для создания двоичного пользовательского пакета, который, между прочим, позже будет доступен для загрузки с подписью. Очевидно, это мой первый пакет debian / ubuntu, который я создаю.

1 Ответ

1 голос
/ 30 апреля 2020

В настоящее время я работаю над проектом, написанным на go, который распространяется в виде пакета .deb в репозитории.

Я должен сказать вам, что найти документацию по нему нелегко. Я использую fpm для этой деятельности.

Сначала создайте в папке, которая представляет ваш проект на конечном компьютере. Например, "/ tmp / proj"

Внутри этой папки вы должны поместить в пакет все, что хотите распространять. Например, если ваш скомпилированный двоичный файл называется «myapp» и вы хотите поместить его в «/ usr / bin /», то вам нужно создать папку «/ tmp / proj / usr / bin» и поместить в нее исполняемый файл. файл с разрешениями, которые вы будете использовать.

Таким образом, со всеми файлами, которые вы хотите распространять.

Затем создайте скрипт, который вы будете использовать для генерации пакета:

PKG_NAME= application name, one word, lowercase
PKG_DESCRIPTION= Brief description of the package
PKG_VERSION= Version, in x.y.z format
PKG_RELEASE= Correlative number from 1 onwards
PKG_MAINTAINER= Your name and email. Format: "name" < email >
PKG_VENDOR= Your company name
PKG_URL= URL of your product

FPM_OPTS="-n $PKG_NAME -v $PKG_VERSION --iteration $PKG_RELEASE"

fpm -s dir -t deb ${FPM_OPTS} -f \
    -maintainer "$PKG_MAINTAINER" \
    --vendor "$PKG_VENDOR" \
    --url "$PKG_URL" \
    --description "$PKG_DESCRIPTION" \
    --architecture "amd64" \
    -C /tmp/proj \
    .

И это все! Ну, есть чему поучиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...