Как мне создать свой собственный PPA для совместного использования с сообществом Ubuntu? Я пытаюсь создать свой собственный набор пакетов, и я действительно хотел бы поделиться им с сообществом.
Как мне создать свой собственный PPA для совместного использования с сообществом Ubuntu? Я пытаюсь создать свой собственный набор пакетов, и я действительно хотел бы поделиться им с сообществом.
Используя архив личных пакетов ( PPA ), вы можете распространять программное обеспечение и обновления непосредственно пользователям Ubuntu. Создайте исходный пакет, загрузите его, и Launchpad будет создавать двоичные файлы, а затем размещать их в вашем собственном apt-хранилище. Р>
Ниже приведено подробное объяснение .
Это учебное пособие по созданию базового файла .deb из заданного сценария. В этом уроке мы сначала создаем образец программы в bash, который просто показывает "HELLO FROM PROGRAM". Затем мы создаем файл управления для программы, чтобы сделать установщик debian. Наконец, они упакованы в файл .deb
. Р>
создать образец программы в bash
mkdir "$HOME/create_deb/pgmdir"
gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
вставьте в него следующий код
#!/bin/bash
echo 'HELLO FROM PROGRAM' | zenity --text-info
Сделать исполняемый файл программы
chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
Создать файл управления для пакета 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 . Р>
Создайте скрипт 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"
Создайте скрипт prerm
, который выполняется перед удалением пакета
#!/bin/sh
set -e
echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
и сделать его выполнимым
chmod +x "$HOME/create_deb/DEBIAN/prerm"
Создание структуры пакета и копирование программ, данных и т. д.
Создайте структуру установленных программ и их данных. В этом примере мы помещаем файл в /bin
. Р>
mkdir -p "$HOME"/create_deb/bin
cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
Создайте файл .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 из сценариев или исполняемых файлов )
Установите вновь созданный пакет .deb
.
Вы можете открыть его с помощью software-center
, но это может не позволить вам установить. Поэтому я рекомендую использовать менеджер пакетов gdebi
. Р>
sudo apt-get install gdebi
gdebi "$HOME"/create_deb/hellodeb.deb
Теперь вы можете установить его. Во время установки вы должны увидеть диалог gtk
Установка программы: zenity_hello.sh ......
После установки открытого терминала введите zenity_hello
. Если программа правильно установлена и все в порядке, вы должны увидеть диалог gtk
ПРИВЕТ ИЗ ПРОГРАММЫ
Удаление пакета
sudo apt-get remove zenity_hello
Поскольку OP хочет простой способ опубликовать свои пакеты, я даю легкий взлом.
: dropbox (или любой другой сервис, например github ) в общей папке.
Создайте папку внутри папки Public-Dropbox, где вы поместите свои файлы * .deb:
mkdir ~/Dropbox/Public/deb-packages
или создайте эту папку somwhere else и поместите символическую ссылку в свою общую папку:
mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages
Перейдите в эту папку и создайте скрипт, который при запуске создает Packages.gz, содержащий всю необходимую информацию о ваших deb-пакетах. создать:
gedit import.sh
поместите это в него:
#!/bin/bash
dpkg-scanpackages . /dev/null |gzip > Packages.gz
сделать его выполнимым:
chmod x import.sh
Скопируйте некоторые файлы * .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
Ссылка р>
Для создания PPA вам понадобится учетная запись Launchpad.net. Просто нажмите на пользователя на Launchpad (нажмите на свое имя в верхнем левом углу) и создайте PPA. Возможно, вам придется сначала подписать Кодекс поведения и иметь ключ GPG, зарегистрированный в вашей учетной записи.