Что такое простейшее руководство по пакетированию Debian?

150

Я пошел в Ubuntu Wiki, но запутался, было слишком много способов. Пожалуйста, расскажите мне простое руководство по упаковке Debian.

akshatj
источник
3
Вы хотите создавать пакеты для собственного использования, на определенном компьютере или для использования другими?
Андол
1
На каком языке вы хотите установить программное обеспечение?
Уманг
4
У меня такая же проблема. Большинство уроков и руководств начинаются с "получить архив с исходным кодом". С этого момента мы потерялись. У нас есть простая вещь, которую мы хотим развернуть, нет вышестоящего архива, нет исходного кода. это просто файл войны, некоторые сценарии и некоторые файлы jar. Что такое tar-архив верхнего уровня, и кто-нибудь видел руководство, НЕ использующее его, которое является всеобъемлющим (например, посвящено проблемам пользователей)
John Little
2
Я пойду на тот, который я разместил на StackOVerflow.
Если вы хотите создавать «виртуальные пакеты» (групповые зависимости), стоит взглянуть на эквив-сборку
Рольф

Ответы:

103

Это хороший HOWTO для создания базового .debфайла. Он подходит для создания .debфайлов для личного использования, но недостаточно строг, если вы хотите, чтобы пакет был включен в Debian / Ubuntu - для этого вам следует прочитать Руководство для нового сопровождающего Debian и / или Руководство по пакетированию Ubuntu (которое, как вам кажется, ' мы уже пробовали).

Хороший инструмент для проверки вашего .debфайла на соответствие lintian(устанавливается из репозиториев).

В чатах Ask Ubuntu было два сеанса.

Основы упаковки на Ubuntu (Упаковка: часть 1)

Ubuntu Упаковка для PPA Launchpad (Упаковка: Часть 2)

dv3500ea
источник
Это прекрасно компилирует то, что нужно для начала упаковки, но в HOWTO я пропускаю информацию, чтобы включить значок приложения в файл deb (и больше ничего об этом не нашел). Любой намек на то, как это сделать?
nightcod3r
14

С какими частями у вас проблемы? Хотя руководство было сложным, оно показалось мне достаточно ясным, когда я следовал за ним.

Краткое резюме:

  • Извлечь источник .tar.gz
  • Бегать dh_make
  • Редактировать файлы Debian
  • Запустите debuild
Натан Осман
источник
3
Что меня смутило, этот процесс одинаков независимо от исходного языка или структуры каталогов?
Сет
9
Суть в том, что у нас нет .tar.gz. мы хотим упаковать приложение, которое мы написали. Кажется, ни один справочник не покрывает это, все они начинаются с «тарболла», которого у нас нет.
Джон Литтл
@JohnМаленький ответ может помочь: askubuntu.com/a/27731/5
Натан Осман
1
Как насчет долгосрочной, многократной упаковки? Должен ли я каждый раз делать такой долгий и сложный процесс упаковки?
Кравемир
Если у пользователя нет ключа GPG , debuildпроизойдет сбой с сообщением « debsign: gpg error! Aborting .... ».
АРУ
10

Вы даже можете использовать dpkg-debдля создания простых пакетов.

Вот хороший учебник от Ubuntuforums .

Searock
источник
5

Самый простой способ упаковать что-либо - использовать checkinstall .

e8johan
источник
4
checkinstall предоставляет быстрый способ сборки двоичного пакета debin (.deb) из метода установки источника. Однако он не предоставляет надлежащий пакет debian (собран из исходного пакета debian).
Жоау Пинту
О, чувак ... Я должен был использовать это ДО компиляции ... это похоже на часы компиляции.
Петр Кула
5

Первоначально опубликованное на StackOverFlow , это руководство предназначено для предварительно скомпилированного или интерпретированного программного обеспечения:

Используется правильный способ создания пакета deb, dpkg-buildpackageно иногда это немного сложно. Вместо этого вы можете использовать, dpkg -b <folder>и он создаст ваш пакет Debian.

Вот основные принципы создания пакета Debian dpkg -b <folder>с любым двоичным файлом или с любым видом сценария, который запускается автоматически без необходимости ручной компиляции (Python, Bash, Pearl, Ruby):

  1. Создайте файлы и папки, чтобы воссоздать следующую структуру:

    ProgramName-Version/
    ProgramName-Version/DEBIAN
    ProgramName-Version/DEBIAN/control
    ProgramName-Version/usr/
    ProgramName-Version/usr/bin/
    ProgramName-Version/usr/bin/your_script
    

    Сценарии, размещенные в, /usr/bin/вызываются напрямую из терминала, обратите внимание, что я не добавил расширение к сценарию. Также вы можете заметить, что структура пакета deb будет структурой программы после ее установки. Таким образом, если вы следуете этой логике, если ваша программа имеет один файл, вы можете поместить его непосредственно под ProgramName-Version/usr/bin/your_script, но если у вас есть несколько файлов, вы должны поместить их под ProgramName-Version/usr/share/ProgramName/all your filesи поместить только один файл /usr/bin/, который вызовет ваши скрипты из/usr/share/ProgramName/

  2. Измените все разрешения для папки на root:

     chown root:root -R /path/to/ProgramName-Version  
    
  3. Измените разрешения скрипта:

     chmod 0755 /path/to/the/script
    
  4. Наконец, вы можете запустить: dpkg -b /path/to/the/ProgramName-Versionи ваш пакет deb будет создан! (Вы также можете добавить сценарии post / pre inst и все, что вам нужно, это работает как обычный пакет Debian)

Вот пример controlфайла. Вам нужно только скопировать / вставить его в пустой файл с именем «control» и поместить в папку DEBIAN.

Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description.This is the short Description.
 Here you put the long description, indented by 1 space.
карел
источник
3

Нет, самое простое и понятное руководство по упаковке в этом мире

Упаковка Java-приложений для Ubuntu и других Debian

Несколько дней назад для своего первого приложения я создал пакет DEB, следуя этому руководству. Очень ясно, и мое приложение успешно упаковано. Да, по крайней мере, это проще всего для меня.

Вы можете сравнить его с Руководством по пакетированию Debian.

Аде Мальсаса Акбар
источник
3
«Простой» не означает «полный». Существует множество политик, которые базовое руководство по упаковке .deb не охватывает для различных типов программ, и поэтому упаковка не так проста, как «простое руководство».
Томас Уорд
определенно просто. Это заставило меня начать, и я смог создать свой первый пакет Debian за несколько минут. Еще много деталей, с которыми нужно иметь дело (плохие сообщения от lintian), но отличная отправная точка.
atmelino