まず、キックスタートは初めてですので、間違った用語を使用した場合は、事前にお詫び申し上げます。
私が達成しようとしていること: CentOSと私が書いたWebベースのアプリケーションをインストールするための顧客ISOを作成しようとしています。 「アプライアンス」タイプのインストールを作成して、アプリケーションを実行するVMまたはベアメタルサーバーのみを簡単にデプロイできるようにします。
RHELに基づいて別の会社が作成したISOの例があり、彼らが行ったことをフォローして、ニーズに合わせてカスタマイズしようとしています。
質問:サンプルisoのks.cfgファイルを見て、インストールするパッケージを定義しています。これは、最終的にはISOのルートにあるディレクトリからのRPMのリストであると思います。以下は、ks.cfgファイルからの抜粋です。
#Package install information
%packages
@ base
@ core
@ acme-base
@ acme-platform
@ acme-application
Isoのディレクトリを見ると、@ acme-platformによって/acme/acmeplatform/RPMS/*.rpmがインストールされると思います。
私の質問は、このマッピングが@ acme-platformから実際のRPMが保存されているISO上のディレクトリにどのように定義されているかです。
編集:最初の答えを読んだ後、私は質問を明確にしたいと思いました:私は本当にRPMの場所をks.cfg
ファイルで参照されているグループにマップするファイルを探しています。グループを構成する実際のパッケージは/repodata/comps.xml
で定義されていることがわかります
リストされているパッケージは、実際にはyum
パッケージグループです。グループは、個々のパッケージを手動でリストする必要がない(または、特定の効果に対してどのパッケージが推奨されるかを必ずしも知っている)必要がないことに慣れています。たとえば、RHEL 6(およびCentOS 6だと思います)では、テキストのみの場合、yum groupinstall Desktop
を実行できます。これにより、「デスクトップ」というグループを満たすために必要なすべてのパッケージがインストールされ、最終的にGNOMEがインストールされます。デスクトップおよびその他のアプリケーションRedHatは、あなたが役に立つと思った。これは、基本的に「デスクトップが欲しい」と言うのと同じくらい簡単なプロセスにするためです。
core
およびbase
グループはRHEL/CentOSベースの一部であり、acme-*
グループはおそらく問題のアプライアンス用です。彼らはおそらくrpmを同じディレクトリに置きます
マウントすることから始めます ループバックにマウントされたISOを調べるyumリポジトリを作成します 次に、どの個々のパッケージが各グループに対応するかを確認するために必要なyum groupinfo
コマンドを発行します。たとえば、base
グループのパッケージを表示するには、yum groupinfo base
と入力して、栄光を見てください。
それが与えるパッケージ名は、DVDのどこかにあるRPMの名前になります(覚えていませんが、「RPMS」ディレクトリがあると思います)。パッケージ名は、RPMのファイル名の最初の部分を形成します。
たとえば、btparser
というパッケージが表示された場合、ファイル名はbtparser-0.17-2.el6.x86_64.rpm
という名前になります(ただし、find /path/to/mountedISO -name 'btparser*
を発行して検索します)。
それはあなたを正しい軌道に乗せるはずです。
/etc/yum.repos.d/内の/etc/yum.confファイルと.repoファイルは、使用するリポジトリを決定します。これらのリポジトリには、RPMの場所を(「場所」フィールドを介して)指定するファイルrepodata /primary.xmlがあります。
ソフトウェアをメインCDリポジトリに統合したくない場合があります。 ISOの他の場所で作成し、creatrepoを使用します。キックスタート構成では、「repo」コマンドを追加して、「repo --name = acme --baseurl = file:// mnt/cdrom/local/repos/acme」などを使用してこのリポジトリを追加できます。