Как мне создать свой собственный PPA, чтобы поделиться с сообществом Ubuntu? Я пытаюсь создать свой собственный набор пакетов, и мне бы очень хотелось поделиться им с сообществом.
Как мне создать свой собственный PPA, чтобы поделиться с сообществом Ubuntu? Я пытаюсь создать свой собственный набор пакетов, и мне бы очень хотелось поделиться им с сообществом.
Ответы:
Используя Personal Package Archive ( 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.
Вы можете редактировать содержимое, если хотите. Подробнее о формате этого файла читайте здесь и здесь .
Создать 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
Поскольку ОП хочет простой способ опубликовать свои пакеты, я даю легкий взлом.
требование: учетная запись dropbox (или любая другая служба, например, github ) с общей папкой.
Создайте папку внутри вашей Public-Dropbox-Folder, куда вы положите свои файлы * .deb:
mkdir ~/Dropbox/Public/deb-packages
или создайте эту папку где-нибудь еще и поместите символическую ссылку в вашу общую папку:
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 , который ищет, какие пакеты расположены в этом хранилище.
Теперь подождите, пока Dropbox синхронизирует папку и заберет публичный URL изPackages.gz
. Это должно выглядеть примерно так:
http://dl.getdropbox.../Packages.gz
Избавьтесь от конца этой ссылки, добавьте к ней еще несколько слов, и теперь вы можете использовать и заполнить следующую строку для sources.list:
deb http://dl.getdropbox.../deb-packages ./
Вот и все, у вас работает собственный deb-репозиторий. Всегда синхронизируется локально, но доступно любому, в любое время и в любом месте.
ПРИМЕЧАНИЕ: dpkg-scanpackages
доступно по dpkg-dev
ссылке
releases/
см github.com/rubo77/mouse-speed/blob/master/release/...
debuild -us -uc -k'your GPG key here'
вы можете загрузить его с помощью dput ppa:<lp-username>/<ppa-name> packet-source.changes
Launchpad, как описано здесь (источник: создать пакет .deb из скриптов или двоичных файлов )
debuild -k'your GPG key here' -S
потому что Launchpad создаст файл deb (если он не отклонен) - что был бы `-us -uc` для?
Вам понадобится учетная запись Launchpad.net для создания PPA. Просто нажмите на своего пользователя на Launchpad (нажмите на свое имя в левом верхнем углу) и создайте PPA. Возможно, вам придется сначала подписать Кодекс поведения и зарегистрировать ключ GPG в вашей учетной записи.