この記事では、自家製のdebianパッケージを作成し、それをローカルパッケージリポジトリに含める簡単な方法について説明します。既存のDebian/Ubuntuパッケージを使用することもできますが、独自の簡単なアプリケーションを作成してパッケージ化することから始めます。パッケージの準備ができたら、ローカルパッケージリポジトリに含めます。この記事は非常に単純なアプローチを示していますが、さまざまなシナリオでテンプレートとして機能する可能性があります。
このチュートリアルでは、次のことを学びます。
- 簡単なDebianパッケージを作成する方法
- ローカルdebianリポジトリを作成する方法
- ソフトウェアソースのリストにリポジトリを追加する方法
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
Debian | |
ビルドエッセンシャルパッケージ | |
動作しているApacheWebサーバーとルート権限 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
バイナリ実行可能ファイルの作成
最初に行う必要があるのは、単純なC ++プログラムを作成し、コンパイルしてテストすることです。代わりに簡単なCプログラムを作成したい場合は、Cプログラミングの包括的なチュートリアルにアクセスしてください。私たちのプログラムは、画面に「linuxconfig.org」を出力するだけで他に何もしません。コードは次のとおりです:
#include <iostream>
int main() {
using namespace std;
cout << "linuxconfig.org\n";
}
上記のコードをlinuxconfig.cc
として保存します 。プログラムをコンパイルするには、g++
が必要です。 build-essentialパッケージによって提供されるコンパイラ。次のコマンドを実行してインストールできます:
$ sudo apt-get install build-essential
コードをコンパイルするには、次のLinuxコマンドを使用します。
$ g++ linuxconfig.cc -o linuxconfig $ ./linuxconfig linuxconfig.org
すべてがよさそうだ。この時点で、画面に文字列を出力する「linuxconfig」という実行可能ファイルが必要です。
Debianパッケージの作成
実行可能なバイナリの形で小さなプログラムの準備ができたので、debianパッケージを作成できます。これを行うには、dpkg-deb
を使用します 道具。まず、debianパッケージ構造を作成する必要があります。 debianパッケージのビルドに必要なファイルは次のとおりです。
- Debian / control
- パッケージの一部となるカスタムファイル(必須ではありません)
まず、linuxconfig
というディレクトリを作成します 。このディレクトリには、必要なすべてのパッケージファイルが保持されます:
$ mkdir linuxconfig
次に、DEBIANディレクトリと制御ファイルを作成します:
$ mkdir linuxconfig/DEBIAN $ vi linuxconfig/DEBIAN/control
制御ファイル内に、次の情報を入力します。
Package: linuxconfig Version: 1.0 Section: custom Priority: optional Architecture: all Essential: no Installed-Size: 1024 Maintainer: linuxconfig.org Description: Print linuxconfig.org on the screen
素晴らしい、欠けているのはlinuxconfigプログラムだけです。 linuxconfig
の内部 ディレクトリプログラムがシステムにインストールされるパスを表すディレクトリツリーを作成し、
実行可能ファイルをその中にコピーします:
$ mkdir -p linuxconfig/usr/bin/ $ cp /path/to/linuxconfig linuxconfig/usr/bin/
この時点で、パッケージを作成する準備が整いました:
$ dpkg-deb --build linuxconfig dpkg-deb: building package `linuxconfig' in `linuxconfig.deb'. $ ls linuxconfig linuxconfig.deb
パッケージの名前を変更して、プログラムのバージョンとパッケージのアーキテクチャが含まれるようにすることもできます。例:
$ mv linuxconfig.deb linuxconfig-1.0_amd64.deb
全部終わった !私たちのパッケージは準備ができています! (注:これは単なる例であり、公式パッケージの作成にはさらに作業が必要です)。
ローカルパッケージリポジトリの設定
ローカルパッケージリポジトリを作成するには、作業が必要です。この場合、Apache
の使用を想定しています。 デフォルト設定で。 Apache Webサーバーをインストールするには、次を実行するだけです。
$ sudo apt-get install apache2
インストールしたら、ウェブサーバーが機能することを確認するために、マシンのIPアドレス(または、マシン自体でブラウザを実行している場合は「http:// localhost」)に移動できます。この場合はhttp://です。 10.1.1.4。
有名なそれが機能するのを見る必要があります! メッセージ。
Webサーバーソフトウェアは実行されていますが、コンテンツはまだ追加されていません。 DocumentRoot
デフォルトのApacheVirtualHost
の 、は/var/www/html
です :ここにリポジトリを作成します。
/var/www/html
内に「debian」ディレクトリを作成しましょう linuxconfig-1.0_amd64.debパッケージをその中にコピーします:
$ sudo mkdir /var/www/html/debian $ sudo cp /path/to/linuxconfig-1.0_amd64.deb /var/www/html/debian/
次のステップは、パッケージリストの生成です。 debian
に移動します ディレクトリを作成し、dpkg-scanpackages
を使用します タスクを実行するためのユーティリティ。 dpkg-dev
をインストールする必要があるかもしれません dpkg-scanpackages
の場合のパッケージ コマンドがありません:
$ dpkg-scanpackages . | gzip -c9 > Packages.gz dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
これでローカルリポジトリの準備が整いました。
ソフトウェアソースへのリポジトリの追加
この時点で、作成したローカルリポジトリからパッケージをインストールできるようにするには、/etc/apt/sources.list
を編集する必要があります。 ファイルに関連するエントリを追加し(マシンのIPアドレスを反映するようにIPアドレスを変更します)、
リポジトリを同期します:
echo "deb [trusted=yes] http://10.1.1.4/debian ./" | tee -a /etc/apt/sources.list > /dev/null
上記の[trusted=yes]
を必ず追加してください 次のエラーメッセージを回避するには:
Release' does not have a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default.
リポジトリの同期:
$ sudo apt-get update Ign:1 http://10.1.1.4/debian ./ InRelease Ign:2 http://10.1.1.4/debian ./ Release Ign:3 http://10.1.1.4/debian ./ Packages Ign:3 http://10.1.1.4/debian ./ Packages Ign:3 http://10.1.1.4/debian ./ Packages Get:3 http://10.1.1.4/debian ./ Packages [303 B]>
パッケージをインストールするには、apt-getツールを使用できます:
$ sudo apt-get install linuxconfig Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: linuxconfig 0 upgraded, 1 newly installed, 0 to remove and 8 not upgraded. Need to get 3174 B of archives. After this operation, 1,049 kB of additional disk space will be used. WARNING: The following packages cannot be authenticated! linuxconfig Install these packages without verification [y/N]? y
実行:
$ linuxconfig linuxconfig.org
システムからパッケージを削除するには、次のコマンドを実行します。
$ sudo apt-get remove linuxconfig Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: linuxconfig 0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded. After this operation, 1049 kB disk space will be freed. Do you want to continue? [Y/n] y