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

Linuxでカスタムrpmリポジトリを作成する方法

Rpmは、 RPM Package Managerの頭字語です。 :これは、FedoraやRed HatEnterpriseLinuxなどのすべてのRedHatファミリーのディストリビューションで使用されている低レベルのパッケージマネージャーです。

rpmパッケージは、このパッケージ管理システムを使用してインストールすることを目的としたソフトウェアを含むパッケージであり、rpmパッケージは通常、ソフトウェアリポジトリを介して配布されます。このチュートリアルでは、カスタムrpmリポジトリを作成する方法と、それをソフトウェアソースとして使用するようにディストリビューションを構成する方法を学習します。

このチュートリアルでは、学習します

  • rpmリポジトリを作成する方法
  • リポジトリをソフトウェアソースとして使用する方法

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

システム ソフトウェア その他 規約
ソフトウェア要件とLinuxコマンドラインの規則
カテゴリ 使用する要件、規則、またはソフトウェアバージョン
RedHatファミリーの配布
dnf、createrepo
リポジトリを構成するための管理者権限
#–指定されたlinux-commandを、rootユーザーとして直接、または sudoを使用してroot権限で実行する必要があります。 command
$ –指定されたlinux-commandsを通常の非特権ユーザーとして実行する必要があります

ソフトウェアのインストール

このチュートリアルのために、IP 192.168.0.39を使用してローカルマシン上にカスタムリポジトリを作成します httpサーバーとして使用します。このマシンで最初に行う必要があるのは、 createrepoをインストールすることです。 パッケージ。リモートマシンにインストールされているディストリビューションは、パッケージが利用可能である限り、rpmベースのディストリビューションである必要はありません。たとえば、この場合、サーバーにインストールされているシステムはDebianであるため、パッケージをインストールするには、次のコマンドを実行する必要があります。

$ sudo apt-get update && sudo apt-get install createrepo

前に述べたように、特定の例では、カスタムリポジトリでホストされているソフトウェアにHTTPプロトコル経由でアクセスできるようにする必要があるため、HTTPサーバーをインストールする必要があります。この場合、Apacheを使用します。 Debianにインストールするだけで、実行するだけです:

$ sudo apt-get install apache2

パッケージがインストールされると、いくつかの非常に簡単な手順でrpmリポジトリを作成できます。

リポジトリの作成

デフォルトのApacheVirtualHost DocumentRoot ApacheがDebianにインストールされたときに作成されるのは/var / www / html 。この時点で、リポジトリ用のVirtualHostを作成するか、デフォルトのディレクトリの一部としてリポジトリディレクトリを作成するかを選択できます。
簡単にするために、このチュートリアルでは後者のオプションについて説明します。

$ sudo mkdir /var/www/html/repo

リポジトリ 上記のコマンドで作成したディレクトリ、デフォルトのVirtualHost DocumentRoot 、パッケージをホストし、リポジトリのベースになります。それをよりよく構造化するために、ディストリビューション、そのバージョン、および利用可能にしたいパッケージのアーキテクチャにちなんで名付けられたいくつかのサブディレクトリを作成したいと思います。たとえば、 Fedora 33 x68_64のリポジトリを使用するとします。 、次のコマンドを実行する必要があります:

$ sudo mkdir -p /var/www/html/repo/fedora/releases/33/x86_64

次のステップは、リポジトリにデータを入力することです。私たちがしなければならないのは、利用可能にしたいパッケージを適切なリポジトリディレクトリ内に配置することだけです。この場合、例として、ソースからVSCodeエディターをコンパイルして取得したパッケージをリポジトリに追加します。このパッケージは、 code-1.56.0-1617183449.el8.x86_64.rpmと呼ばれます。 。コピーすると、ファイル構造は次のようになります。

repo
└── fedora
    └── releases
        └── 33
            └── x86_64
                └── code-1.56.0-1617183449.el8.x86_64.rpm

リポジトリにデータが入力されたら、 createrepoを実行するだけです。 パッケージを含むディレクトリ内のコマンド。この場合、次のように実行します:

$ sudo createrepo /var/www/html/repo/fedora/releases/33/x86_64

このコマンドは、 repodataという名前のディレクトリ内にリポジトリメタデータを作成します 、宛先ディレクトリに含まれているパッケージに基づいており、リポジトリが新しいパッケージで更新されるか、古いパッケージが削除されるたびに再起動する必要があります。コマンドを起動すると、ディレクトリ構造は次のようになります。

repo
└── fedora
    └── releases
        └── 33
            └── x86_64
                ├── code-1.56.0-1617183449.el8.x86_64.rpm
                └── repodata
                    ├── 22ab1d1d123bb7d7cde556bf8a8ac4daf9cdb75572f40ebdd2f399908cb7f6b9-other.xml.gz
                    ├── 26ed9b63868b2e0263dfa817e21921c4e7542c1be9f6b7875381bba6bd78d1c6-primary.sqlite.bz2
                    ├── 50fc300a761812761cf9a8413a619da23cf336d49999753568ce19a97c025d44-other.sqlite.bz2
                    ├── a523f54b5fcd0720c182969f991f51e125728a361f31237725dc9418d5e126ea-primary.xml.gz
                    ├── af2fa9ea5deaffca5ffc9f3e524155defa8cfa5656962845a45c8b0e984f3e19-filelists.sqlite.bz2
                    ├── f95849cf860f1184b97d30000ea1f9f1c35edd6d625dcd387453187510dd4a18-filelists.xml.gz
                    └── repomd.xml

リポジトリが正常に作成されました。次に、ソフトウェアソースとして使用するようにディストリビューションを構成する必要があります。

ソフトウェアソースとしてのリポジトリの追加

rpmベースのディストリビューションに移動して、カスタムリポジトリをソフトウェアソースとして使用するためにそれを構成する方法を見てみましょう。リポジトリー構成ファイルは、 /etc/yum.repos.dの下にあります。 ディレクトリであり、
.repoが必要です。 拡大。ディレクトリ内を見ると、既存のものを確認できます。

$ ls /etc/yum/repos.d
fedora-cisco-openh264.repo   fedora-updates-testing-modular.repo
fedora-modular.repo          fedora-updates-testing.repo
fedora.repo                  rpmfusion-free.repo
fedora-updates-modular.repo  rpmfusion-free-updates.repo
fedora-updates.repo          rpmfusion-free-updates-testing.repo

それでは、カスタムリポジトリ構成を作成しましょう。ファイル内に、最小限の情報セットとして、以下を提供する必要があります。

  • リポジトリID
  • リポジトリ名
  • リポジトリbaseurl
  • リポジトリのステータス
  • パッケージのgpg署名を確認するかどうか

このような情報は、 ownrepo.repoというファイルに保存されます。 、その内容は次のとおりです:

[ownrepo]
name=Own repository
baseurl=http://192.168.0.39/repo/fedora/releases/$releasever/$basearch
enabled=1
gpgcheck=0

括弧内に報告された定義( [ownrepo] )はリポジトリIDであり、すべてのリポジトリ定義で一意である必要があります。 nameを使用 キーリポジトリの人間が読める名前を文字列として提供しました。これはオプションです。名前が指定されていない場合、リポジトリIDは名前としても使用されます。

baseurlを使用 キーリポジトリのURLのリストを指定します。 URLは、スペースまたはコンマで区切る必要があります。この例では、単一のURLを提供しましたが、2つの変数を使用していることがわかります。

  • $ releasever
  • $ basearch

最初のものの拡張、 $ releasever 、オペレーティングシステムのリリースバージョン(この場合は 33 )になります 、リポジトリをFedora33システムにインストールしているため。 2番目の変数$basearch 、は、システムの基本アーキテクチャを表す文字列で展開されます。この場合は、 x86_64です。 。

有効 キーにはブール値が必要です リポジトリをアクティブと見なすかどうかを決定する値。最後に使用したキーはgpgcheckです。 :ブール値も必要であり、リポジトリからインストールされたパッケージに対してgpg署名チェックを実行する必要があるかどうかを判断するために使用されます。この例では、リポジトリは個人使用のみを目的としているため、チェックを無効にしました。

リポジトリが構成されたので、 codeのインストールを試みることができます 実行するだけで、そこからパッケージ化できます:

$ sudo dnf install code
Own repository                                                                    451 kB/s |  13 kB     00:00
Dependencies resolved.
==================================================================================================================
 Package              Architecture           Version                                Repository               Size
==================================================================================================================
Installing:
 code                 x86_64                 1.56.0-1617183449.el8                  ownrepo                 100 M

Transaction Summary
==================================================================================================================
Install  1 Package

Total download size: 100 M
Installed size: 294 M
Is this ok [y/N]:

プロンプトに肯定的な回答を提供して確認すると、パッケージがシステムにインストールされます。

結論

この記事では、 createrepoを使用してカスタムrpmリポジトリを作成するのがいかに簡単かを学びました。 ユーティリティ、およびソフトウェアソースを使用するためにディストリビューションにdnf構成ファイルを作成する方法を見ました。リポジトリ構成で使用できる
キーの最小限のサブセットを見ました。より詳細なリストについては、公式のdnfドキュメントを参照してください。


Linux
  1. LinuxRPMパッケージを作成する方法

  2. Linuxでカスタムホームディレクトリを使用してユーザーを作成する方法

  3. Linux サーバーに CVS をインストールして CVS リポジトリを作成する方法

  1. rpmパッケージをビルドする方法

  2. MicrosoftのLinuxソフトウェアリポジトリを追加する方法

  3. Linux で logrotate を使用してカスタム ログ ファイル ローテーションを作成する方法

  1. Linuxでスワップを作成する方法

  2. LinuxでSystemdサービスを作成する方法

  3. Linuxでスワップファイルを作成する方法