Ubuntuコミュニティと共有する独自のカスタムPPAを作成するにはどうすればよいですか?独自のカスタムパッケージセットを作成しようとしています。コミュニティで共有したいと思っています。
Ubuntuコミュニティと共有する独自のカスタムPPAを作成するにはどうすればよいですか?独自のカスタムパッケージセットを作成しようとしています。コミュニティで共有したいと思っています。
回答:
Personal Package Archive(PPA)を使用して、Ubuntuユーザーにソフトウェアと更新を直接配布できます。ソースパッケージを作成してアップロードすると、Launchpadがバイナリをビルドし、独自のaptリポジトリでホストします。
詳細な説明はこちらです。
これは、特定のサンプルスクリプトから基本的な.debファイルを作成するためのチュートリアルです。このチュートリアルでは、最初に「プログラムからこんにちは」と表示するだけのサンプルプログラムをbashで作成します。次に、プログラムの制御ファイルを作成して、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
OPは彼のパッケージを公開する簡単な方法を望んでいるので、簡単にハッキングします。
要件:パブリックフォルダーを持つDropbox(またはgithubの場合は他のサービス)アカウント。
* .debファイルを置くPublic-Dropbox-Folder内にフォルダーを作成します。
mkdir ~/Dropbox/Public/deb-packages
または、そのフォルダを別の場所に作成し、パブリックフォルダにシンボリックリンクを配置します。
mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages
そのフォルダーに移動して、実行時にdeb-packagesに必要なすべての情報を含むPackages.gzを作成するスクリプトを作成します。作成:
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がFolderを同期し、からPublic-URLPackages.gz
を取得するのを待ちます。次のようになります。
http://dl.getdropbox.../Packages.gz
そのリンクの終わりを取り除き、さらにいくつかの単語を追加すると、sources.listに次の行を使用して入力できます。
deb http://dl.getdropbox.../deb-packages ./
これで、独自のdebリポジトリを実行できました。常にローカルで同期されますが、いつでもどこでも誰でも利用できます。
注:
参照dpkg-scanpackages
から入手可能ですdpkg-dev
releases/
参照してください
debuild -us -uc -k'your GPG key here'
アップロードできます(ソース:スクリプトまたはバイナリから.debパッケージを作成します)dput ppa:<lp-username>/<ppa-name> packet-source.changes
debuild -k'your GPG key here' -S
Launchpadはdebファイルを作成するため(拒否されない場合)-何`-us -uc`はそうでしたか?