Как мне создать PPA?

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

140
задан 24 October 2011 в 19:54

3 ответа

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

0
ответ дан 24 October 2011 в 19:54

Как создать файл .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"
    
    [ 1158]
  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 с помощью [ 1185]

    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 минуты

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

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

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

    mkdir ~/Dropbox/Public/deb-packages  
    

    или создайте эту папку где-нибудь еще и поместите символическую ссылку в ваш Public folder:

    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 , который ищет, чтобы узнать, какие пакеты расположены в это хранилище.


Вот и все

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

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

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

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

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

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

0
ответ дан 24 October 2011 в 19:54

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

Вот подробное объяснение .

0
ответ дан 24 October 2011 в 19:54