it-swarm-ja.com

PPAを作成するにはどうすればよいですか?

Ubuntuコミュニティと共有する独自のカスタムPPAを作成するにはどうすればよいですか?独自のカスタムパッケージセットを作成しようとしています。コミュニティで共有したいと思っています。

122
Jebeld17

Personal Package Archive(PPA)を使用すると、ソフトウェアと更新をUbuntuユーザーに直接配布できます。ソースパッケージを作成してアップロードすると、Launchpadがバイナリをビルドし、独自のaptリポジトリでホストします。

詳細な説明 です。

96
hhlp

.debファイルを作成する方法

これは、特定のサンプルスクリプトから基本的な.debファイルを作成するためのチュートリアルです。このチュートリアルでは、最初に「プログラムからこんにちは」と表示するだけのサンプルプログラムをbashで作成します。次に、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.
    

    必要に応じて内容を編集できます。このファイルの形式について詳しく読む here および here

  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"
    
  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 .
    

    .は、バージョン、Archなどの.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パッケージを作成

  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分でリポジトリを公開

OPは彼のパッケージを公開する簡単な方法を望んでいるので、簡単にハッキングします。

要件:パブリックフォルダーを持つdropbox(または、たとえば github のその他のサービス)アカウント。

  1. * .debファイルを置くPublic-Dropbox-Folder内にフォルダーを作成します。

    mkdir ~/Dropbox/Public/deb-packages  
    

    または、そのフォルダを別の場所に作成し、パブリックフォルダにシンボリックリンクを配置します。

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. そのフォルダーに移動し、実行時にdeb-packagesについて必要なすべての情報を含むPackages.gzを作成するスクリプトを作成します。作成:

    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ファイルが作成されます。このファイルは、このリポジトリにあるパッケージを知るためにaptが検索します。


それでおしまい

次に、Dropboxがフォルダを同期し、パブリックURLからPackages.gzを取得するのを待ちます。次のようになります。

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

そのリンクの終わりを取り除き、さらにいくつかの単語を追加すると、sources.listに次の行を使用して入力できます。

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

これで、独自のdebリポジトリを実行できました。常にローカルで同期されますが、いつでもどこでも誰でも利用できます。

注:dpkg-scanpackagesdpkg-devから入手できます
参照

86
totti

PPAを作成するには、Launchpad.netアカウントが必要です。 Launchpadでユーザーをクリックして(左上の名前をクリックして)PPAを作成します。最初に行動規範に署名し、アカウントにGPGキーを登録する必要があります。

2
GTRsdk