RPM .specの依存関係を分離された環境にインストールできるツールはありますか?このような依存関係をシステムにグローバルにインストールすることはありません。root権限がないため、インストールできません。
理由
パッケージをビルドしたい[〜#〜] a [〜#〜]新しいバージョンに依存します[〜#〜] b [〜#〜](システムにグローバルにインストールすることはできません)。
[〜#〜] b [〜#〜]の新しいバージョンをビルドし、ビルドツールをインストールさせるのが好きです[〜#〜] b [〜#〜]の-devel
隔離された環境に入れて、ビルドに必要なすべてのファイルを提供します[〜#〜] a [〜#〜]。
ソリューション
chroot
と言ってこれを実行しようとするときに何に注意する必要がありますか?はい、ツールは mock
と呼ばれ、EPELにあります。
典型的な使用法:
rpmbuild -bs mypackage.spec
mock -r epel-6-x86_64 mypackage-0.1-1.src.rpm
これは、RPMを構築するための実際に推奨される方法です。これは、予期しない依存関係が引き込まれないように、プロセスをシステムから分離するためです。
/etc/mock
内のファイルを変更して、独自のパッケージやプライベートリポジトリなどをプルするか、ドキュメントでパッケージをmock
chroot環境に手動で追加する方法を確認できます。
mock
の使用を許可するには、ユーザーをmock
グループに追加する必要があることに注意してください。
偶然ではありませんが、RedHatが使用するkoji
ビルドサーバーはmock
を呼び出して個々のパッケージをビルドします。常にlotのパッケージをビルドする必要がある場合は、koji
ビルドサーバーのセットアップを検討する価値があるかもしれません。
本番ホストでパッケージをビルドしようとするのは悪い習慣だと思います。root権限なしでビルドしようとすると、独自のビルドマシンを起動するよりも複雑になります。私が普段していることは次のとおりです。
モックを使いたい。それはあなたがchrootでrpmを構築することを可能にします