GNU/Linux >> Linux の 問題 >  >> Debian

Debianパッケージとローカルパッケージリポジトリを作成する簡単な方法

この記事では、自家製のdebianパッケージを作成し、それをローカルパッケージリポジトリに含める簡単な方法について説明します。既存のDebian/Ubuntuパッケージを使用することもできますが、独自の簡単なアプリケーションを作成してパッケージ化することから始めます。パッケージの準備ができたら、ローカルパッケージリポジトリに含めます。この記事は非常に単純なアプローチを示していますが、さまざまなシナリオでテンプレートとして機能する可能性があります。

このチュートリアルでは、次のことを学びます。

  • 簡単なDebianパッケージを作成する方法
  • ローカルdebianリポジトリを作成する方法
  • ソフトウェアソースのリストにリポジトリを追加する方法


使用されるソフトウェア要件と規則

システム ソフトウェア その他 規約
ソフトウェア要件とLinuxコマンドラインの規則
カテゴリ 使用する要件、規則、またはソフトウェアバージョン
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

Debian
  1. ローカルのRedHatリポジトリを作成する方法

  2. DVDを使用してCentOS7/RHEL7でローカルYUMリポジトリを作成する方法

  3. debian で仮想パッケージを作成する最も簡単な方法は何ですか?

  1. ArchLinuxでパッケージグループをインストールおよび削除する簡単な方法

  2. Debian –依存関係のみを持つ.debパッケージを作成しますか?

  3. Debian – Debianでパッケージのソースリポジトリを知る方法は?

  1. Debian – Debianリポジトリの安全性?

  2. Debianでテストと不安定なリポジトリを有効にする方法

  3. Debian9でユーザーを作成および削除する方法