Какое простейшее руководство по упаковке Debian?

function cdl() {

        local arguments;
        local level_string;
        local counter=1;
        # first argument is how many levels you wish to traverse
        local level=$1; 

        # grab any argument after the initial levels you wish to traverse
        for var in "$@"; do
                if [ $counter -gt 1 ]; then
                        arguments="$arguments/$var";
                fi

                counter+=1;
        done

        # build string based on how many levels you want to go up
        if [ $level -gt 1 ]; then
                counter=1;

                while [ $counter -le $level ]; do
                        level_string="../$level_string";
                        let counter+=1;
                done
        fi

        # execute command
        cd $level_string$arguments
}

# Example:
#-----------------
# /usr/local/src/test/directory/blah> cdl 3 i want to be here

или

# /usr/local/src/test/directory/blah> cdl 3 i/want/to/be/here 

result:

# /usr/local/src/i/want/to/be/here> 
#-----------------

Конечно, я также добавляю псевдонимы в файл .bashrc, используя указанную выше функцию

[ f4]
1
задан 29 June 2015 в 14:04

5 ответов

С какими деталями вы сталкиваетесь?

Краткое описание:

Извлечение источника .tar.gz Запуск dh_make Редактирование файлов debian Запуск debuild
13
ответ дан 29 May 2018 в 12:55
  • 1
    Что меня смущает, так ли этот процесс независимо от исходного языка или структуры каталогов? – Seth♦ 26 September 2014 в 05:15
  • 2
    Суть в том, что у нас нет .tar.gz. мы хотим упаковать приложение, которое мы написали. Похоже, что ни одно руководство не охватывает это, все они начинаются с «вверх по течению», которого у нас нет. – John Little 13 November 2015 в 19:40
  • 3
    @JohnLittle этот ответ может быть полезным: askubuntu.com/a/27731/5 – Nathan Osman 13 November 2015 в 22:25
  • 4
    Как насчет многолетней, многократной упаковки? Должен ли я каждый раз делать такой длинный и сложный процесс упаковки? – kravemir 13 August 2017 в 21:28
  • 5
    Если у пользователя нет клавиши GPG , debuild завершится с ошибкой debsign: произошла ошибка gpg! Aborting .... & Quot ;. – agc 15 December 2017 в 20:04

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

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

7
ответ дан 29 May 2018 в 12:55

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

4
ответ дан 29 May 2018 в 12:55
  • 1
    checkinstall обеспечивает быстрый способ создания бинарного пакета debin (.deb) из исходного метода установки. Однако он не обеспечивает надлежащего пакета debian (построенного из исходного пакета debian). – João Pinto 7 August 2010 в 01:14
  • 2
    OH man .. Мне пришлось использовать это перед компиляцией .. это как часы компиляции. – ppumkin 21 February 2015 в 03:57

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

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

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

Создайте файлы и папки, чтобы воссоздать следующую структуру:
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/ Измените все права доступа к папке на root:
 chown root:root -R /path/to/ProgramName-Version  
Измените разрешения сценария:
 chmod 0755 /path/to/the/script
Наконец, вы можете запустить: 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.
2
ответ дан 29 May 2018 в 12:55

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

http://blog.noizeramp.com/2005/08/31/packaging-java-applications-for-ubuntu-and- другие-debians /.

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

Вы можете сравнить его с Debian Packaging Guide.

1
ответ дан 29 May 2018 в 12:55
  • 1
    & Quot; Простой & Quot; не означает «полный». Существует множество политик, в которых основное учебное пособие по упаковке .deb не распространяется на различные типы программ, поэтому упаковка не так проста, как просто «простой учебник». – Thomas Ward♦ 7 July 2013 в 07:54
  • 2
    определенно просто. Это заставило меня начать, и я смог создать свой первый пакет debian в течение нескольких минут. Все еще много деталей, чтобы иметь дело с (плохие пакеты качества messsages от lintian), но отличная отправная точка. – atmelino 22 November 2015 в 05:05

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

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