Как создать PPA?

107

Как мне создать свой собственный PPA для совместного использования с сообществом Ubuntu? Я пытаюсь создать свой собственный набор пакетов, и я действительно хотел бы поделиться им с сообществом.

    
задан Jebeld17 24.10.2011 в 15:54
источник

3 ответа

81

Используя архив личных пакетов ( PPA ), вы можете распространять программное обеспечение и обновления непосредственно пользователям Ubuntu. Создайте исходный пакет, загрузите его, и Launchpad будет создавать двоичные файлы, а затем размещать их в вашем собственном apt-хранилище.

Ниже приведено подробное объяснение .

    
ответ дан hhlp 24.10.2011 в 16:01
источник
68

Как создать файл .deb

Это учебное пособие по созданию базового файла .deb из заданного сценария. В этом уроке мы сначала создаем образец программы в bash, который просто показывает "HELLO FROM PROGRAM". Затем мы создаем файл управления для программы, чтобы сделать установщик debian. Наконец, они упакованы в файл .deb .

Шаги:

  1. создать образец программы в bash

    mkdir "$HOME/create_deb/pgmdir"
    gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
    

    вставьте в него следующий код

    #!/bin/bash
    echo 'HELLO FROM PROGRAM' | zenity --text-info 
    
  2. Сделать исполняемый файл программы

    chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
    
  3. Создать файл управления для пакета debian

    Сделайте файл с именем control внутри папки DEBIAN

    mkdir "$HOME"/create_deb/DEBIAN
    gedit "$HOME"/create_deb/DEBIAN/control
    

    и вставьте следующие данные

    Package: hellodeb
    Version: 0.1
    Architecture: all
    Maintainer: totti
    Installed-Size: 6
    Depends: zenity, bash
    Section: testing
    Priority: optional
    Homepage: http://askubuntu.com
    Description: This is my first debian package.
     Guided by Totti Torvalds.
     In Description new line start with a space.
    

    Вы можете отредактировать содержимое, если хотите. Подробнее о формате этого файла здесь и here .

  4. Создайте скрипт postinst , который выполняется сразу после установки пакета

    gedit "$HOME"/create_deb/DEBIAN/postinst
    

    , затем вставьте

    #!/bin/sh
    set -e
    echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
    

    и сделать его выполнимым

    chmod +x "$HOME/create_deb/DEBIAN/postinst"
    
  5. Создайте скрипт prerm , который выполняется перед удалением пакета

    #!/bin/sh
    set -e
    echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
    

    и сделать его выполнимым

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    
  6. Создание структуры пакета и копирование программ, данных и т. д.
    Создайте структуру установленных программ и их данных. В этом примере мы помещаем файл в /bin .

    mkdir -p "$HOME"/create_deb/bin
    cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
    
  7. Создайте файл .deb .

    dpkg-deb --build "$HOME"/create_deb .
    

    . автоматически укажет файл .deb с версией, аркой и т. д. Или ваше собственное имя

    dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
    

    Или, если вы создаете файл .deb с помощью

    debuild -k'your GPG key here' -S
    

    , то вы можете загрузить его в Ubuntu Launchpad с помощью

    dput ppa:<lp-username>/<ppa-name> packet-source.changes
    

    , как описано здесь (источник: создать пакет .deb из сценариев или исполняемых файлов )

  8. Установите вновь созданный пакет .deb . Вы можете открыть его с помощью software-center , но это может не позволить вам установить. Поэтому я рекомендую использовать менеджер пакетов gdebi .

    sudo apt-get install gdebi
    
    gdebi "$HOME"/create_deb/hellodeb.deb
    

    Теперь вы можете установить его. Во время установки вы должны увидеть диалог gtk

      

    Установка программы: zenity_hello.sh ......

  9. После установки открытого терминала введите zenity_hello . Если программа правильно установлена ​​и все в порядке, вы должны увидеть диалог gtk

      

    ПРИВЕТ ИЗ ПРОГРАММЫ

  10. Удаление пакета

    sudo apt-get remove zenity_hello
    

Опубликуйте свой репозиторий за 2 минуты

Поскольку OP хочет простой способ опубликовать свои пакеты, я даю легкий взлом.

: dropbox (или любой другой сервис, например github ) в общей папке.

  1. Создайте папку внутри папки Public-Dropbox, где вы поместите свои файлы * .deb:

    mkdir ~/Dropbox/Public/deb-packages  
    

    или создайте эту папку somwhere else и поместите символическую ссылку в свою общую папку:

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. Перейдите в эту папку и создайте скрипт, который при запуске создает Packages.gz, содержащий всю необходимую информацию о ваших deb-пакетах. создать:

    gedit import.sh  
    

    поместите это в него:

    #!/bin/bash
    dpkg-scanpackages . /dev/null |gzip > Packages.gz
    

    сделать его выполнимым:

    chmod  x import.sh
    
  3. Скопируйте некоторые файлы * .deb в папку. Могут быть ваши собственные или некоторые, которые недоступны через другие репозитории. Затем зайдите в папку и выполните скрипт, который мы там помещаем:

    cd ~/deb-packages/ 
    ./import.sh
    

    Это должно создать так называемый Packages.gz файл, который apt ищет, чтобы узнать, какие пакеты находятся в этом репозитории.

Вот и все

Теперь подождите, пока Dropbox синхронизирует Папку и возьмет Public-URL из Packages.gz . Он должен выглядеть примерно так:

http://dl.getdropbox.../Packages.gz

Избавьтесь от конца этой ссылки, добавьте еще несколько слов, и теперь вы можете использовать и заполнить следующую строку для sources.list:

deb http://dl.getdropbox.../deb-packages ./

У вас есть собственный репозиторий deb. Всегда синхронизируется локально, но доступен для всех, в любое время и в любом месте.

ПРИМЕЧАНИЕ. dpkg-scanpackages доступно из dpkg-dev
Ссылка     

ответ дан totti 09.07.2014 в 11:16
2

Для создания PPA вам понадобится учетная запись Launchpad.net. Просто нажмите на пользователя на Launchpad (нажмите на свое имя в верхнем левом углу) и создайте PPA. Возможно, вам придется сначала подписать Кодекс поведения и иметь ключ GPG, зарегистрированный в вашей учетной записи.

    
ответ дан GTRsdk 24.10.2011 в 16:03