web-dev-qa-db-ja.com

SRPMを解凍、変更、再構築、およびインストールする方法

Fedora 15パッケージ(gnome-Shell-extensions-alternative-status-menu)。これは小さな変更です( this commit を元に戻します)。 yumdownloaderを使用してSRPMをダウンロードできます(gnome-Shell-extensions-3.0.2-1.g63dd27cgit.fc15.src.rpm)。

この後、解凍して再構築するにはどうすればよいですか?

9
Vitor Py

ROOTユーザーとしての私:

  1. 他のパッケージと同じようにSRPMをインストールします(rpm --install [source-rpm-filename]

  2. /root/rpmbuild/SPECSディレクトリを調べて、パッケージに一致するspecsファイルを見つけます

  3. rpmbuild -bb /root/rpmbuild/SPECS/[found-filename]

結果のバイナリパッケージは/root/rpmbuild/RPMS/ディレクトリに配置され、標準のrpm --installコマンドを使用してインストールできるようになります。

注:これは、標準のバイナリパッケージの内容をビルドするだけです。これを投稿して、特定の質問に答えます。ソースに変更を加えて新しいパッケージを生成する方法についてではありません。

修正を行うには、パッチを入力として提供し、SPECSファイルを変更するか、または*.tar.bz2にある標準の/root/rpmbuild/SOURCESを独自のファイルに置き換えて、ビルドを実行します。上記のように。

SPECSパッケージを機能させるために変更する必要がある場合があることに注意してください(通常、パッチを抜き、SPECSファイルによってプログラムされているいくつかのファイル名を変更します)。


編集

Rootは悪い習慣なので、rpmをビルドするようです( source )。非rootユーザーとして正常に動作します。

パッチを追加するためのステップバイステップの説明( ここから から):

  1. パッチをrpmbuild/SOURCESにコピーします。
  2. rpmbuild/SPECS/package.specを編集し、Patch0: mypatch.patch行の直後にSource0: ...を追加します。
  3. %setup ...行の後に%patch0 -p1行を追加します

これで正常にビルドされます。と:rpmbuild -ba SPECS/package.spec

7
mdpc

OpenSSLパッケージの再構築CentOS 6.4 は、SRPMパッケージの再構築の詳細な例です。

上記の例では、Mock-パッケージビルダーのJedi Light Sabreを使用しています。

Mockはchrootに確実にデータを投入し、そのchrootでパッケージを再構築するために作成されました。

詳細は http://fedoraproject.org/wiki/Projects/Mock を参照してください

この例では、モックが3回使用されています。1回はパッケージを「アンパック」し、次に.src.rpmを再ビルドし、最後に.rpmを作成します。

4
neonzeon