Вопрос Как создать PPA?


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


115
2017-10-24 15:54


происхождения


или же: askubuntu.com/questions/28562/... - fossfreedom♦
Может быть, это помогает packaging.ubuntu.com/html/getting-set-up.html - rubo77


ответы:


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

Вот детальное объяснение,


86
2017-10-24 16:01



FWIW Я смог активировать свой PPA, прежде чем я подписал кодекс поведения. - Sparhawk
Это лучший ответ. Вам просто сказали, как создать PPA. Ответ ниже (totti) не является PPA, но является публичным репозиторием. Они разные, несмотря на (потенциально) выполнение того же самого. Он даже говорит в первой строке своего ответа: «У этого вопроса есть хорошо написанный, принятый ответ. Поскольку OP хочет простой способ опубликовать свои пакеты, я даю легкий взлом». Поскольку вы предпочитаете легкий взлом, это не дает ему лучшего ответа. - lbaile200
Хорошо, но ни одна из ссылок в этом ответе не описывает, как это сделать с нуля. все ссылки здесь сделаны для разработчиков, которые уже в материале гораздо больше - rubo77
@ rubo77 - «как создать» строго слишком велико, чтобы быть ответственным. Все зависит от того, что вы пытаетесь упаковать. Действительно, каждый из шагов в приведенном выше ответе может быть индивидуальным Q с хорошим подробным ответом. - fossfreedom♦
Новый ответ Тотти уже велик - rubo77


Как создать файл .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.
    

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

  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 файл с версией, arch и т. д. Или ваше пользовательское имя

    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 синхронизирует папку и захватит Открытый URL-адрес Packages.gz, Он должен выглядеть примерно так:

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

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

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

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

ЗАМЕТКА:  dpkg-scanpackages доступен из dpkg-dev
Справка


74
2017-07-09 11:16



+1 Отлично! это сработало: я использовал Github и там был исходный каталог для папки releases/ видеть github.com/rubo77/mouse-speed/blob/master/release/... - rubo77
Это описывает самообслуживаемый PPA, но как я могу Создайте пакет debian Ubuntu - rubo77
Если вы создадите файл .deb на шаге 7. с debuild -us -uc -k'your GPG key here' то вы можете загрузить его с помощью dput ppa:<lp-username>/<ppa-name> packet-source.changes на Launchpad, как описанный здесь (источник: создать пакет .deb из сценариев или двоичных файлов) - rubo77
@ rubo77, Спасибо, я приветствую вас, чтобы добавить эту информацию в конце моего ответа. - totti
Я просто понял, что вам нужны другие параметры для Launchpad, чтобы не создавать файл .deb прямо сейчас (просто -S): debuild -k'your GPG key here' -S потому что Launchpad создаст файл deb (если он не отклонен) - для чего был бы `-us -uc`? - rubo77


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


2
2017-10-24 16:03