О том, как создать Deb пакет, можно прочитать здесь
Для начала необходимо зарегистрироваться на github.
Установить пакет git:
sudo apt-get -y install git
Настройка git:
git config --global user.email "user@mail"
git config --global user.name "username"
Создать SSH ключ:
ssh-keygen
ssh-keygen -t rsa -b 4096 -C "user@mail"
Enter file in which to save the key (/home/user/.ssh/id_rsa):... ~/.ssh/id_rsa
Enter passphrase (empty for no passphrase):... password
Запустить ssh-agent в фоновом режиме:
eval "$(ssh-agent -s)"
Добавить свой закрытый ключ SSH в ssh-agent:
ssh-add ~/.ssh/id_rsa
Добавить новый ключ SSH в учетную запись GitHub:
Скопировать ключ SSH в буфер обмена
sudo apt-get install xclip
xclip -sel clip < ~/.ssh/id_rsa.pub
Перейти https://github.com
-> Settings
-> SSH and GPG keys
-> New SSH key/Add SSH key
-> Ввести описание ключа
-> Вставить ключ
Создать репозиторий:
Перейти https://github.com/new
Настроить репозиторий:
Перейти https://github.com/[USERNAME]/[REPOSITORY]/settings
В разделе "GitHub Pages" выбрать "Source" - "master branch"
Перейти в локальный каталог репозитория:
cd [PATH]
Клонировать репозиторий:
git clone "git@github.com:[USERNAME]/[REPOSITORY].git"
Копировать пакет в репозиторий:
cp [PATH_TO_PACKAGE] .
Создать ключ:
sudo apt install gnupg
gpg --full-gen-key
gpg --full-generate-key
Please select what kind of key you want... 1
RSA keys may be between 1024 and 4096 bits long... 4096
Please specify how long the key should be valid... 0
Is this correct?... y
Real Name... [USERNAME]
Email address... [EMAIL]
Comment...[COMMENT]
Сменить (N)Имя, (C)Примечание, (E)Адрес; (O)Принять/(Q)Выход?...o
gpg: ключ [...] помечен как абсолютно доверенный
gpg: сертификат отзыва записан в '/home/user/.gnupg/openpgp-revocs.d/[...].rev'.
открытый и секретный ключи созданы и подписаны.
[ДОПОЛНИТЕЛЬНО] Операции с ключами:
Список ключей:
gpg --list-keys
Копия:
gpg --export-secret-keys "[MAIL]" > [FILEPATH].asc
Импорт:
gpg --import [FILEPATH].asc
gpg --allow-secret-key-import --import [FILEPATH].gpg
Экспорт:
gpg --output [FILEPATH].gpg --export [KEY_ID]
gpg --output [FILEPATH].gpg --export-secret-key [KEY_ID]
Создать KEY.gpg:
gpg --armor --export "[MAIL]" > [PATH_TO_LOCAL_REPOSITORY]/KEY.gpg
gpg --armor --export [...] > ./[PATH]/KEY.gpg
В репозитории:
Создать Packages
dpkg-scanpackages --multiversion . > Packages
Создать Packages.gz
gzip -k -f Packages
Создать Release
apt-ftparchive release . > Release
Создать Release.gpg
gpg --default-key [...] -abs -o - Release > Release.gpg
Создать InRelease
gpg --default-key [...] --clearsign -o - Release > InRelease
Создать my_list_file.list
echo "deb https://[USERNAME].github.io/[REPOSITORY_NAME] ./" > my_list_file.list
Отправить изменения на GitHub
git add -A
git commit -m "New PPA is now hosted on github"
git push -u origin master
...Готово!!!
curl -s --compressed "https://[USERNAME].github.io/[REPOSITORY_NAME]/KEY.gpg" | sudo apt-key add -
sudo curl -s --compressed -o /etc/apt/sources.list.d/my_list_file.list "https://[USERNAME].github.io/[REPOSITORY_NAME]/my_list_file.list"
sudo apt update
Установить пакет
sudo apt install [PACKAGE_NAME]
Добавить новые пакеты
Скопировать пакеты в репозиторий, затем
dpkg-scanpackages --multiversion . > Packages
gzip -k -f Packages
apt-ftparchive release . > Release
gpg --default-key [...] -abs -o - Release > Release.gpg
gpg --default-key [...] --clearsign -o - Release > InRelease
git add -A
git commit -m update
git push