%buildでRPMビルドが失敗する


1

古いバージョンのFedora用にSamba RPMを作成しようとしています。インターネットにダウンロードできるものがないので、ソースコードを入手しました。

これまでのところ私は、5つの標準ディレクトリを持っている/BUILD/RPMS/SOURCES/SPECS/SRPMS

/SOURCEStarボールでソースコードがあります。
In /SPECsamba.specファイルです。

私がするときrpmbuild -v -bb --clean SPECS/samba.spec、ボールを展開してビルドしようとすると倒れます。エラーは次のとおりline 29: autogen.sh : command not foundです。

より具体的には、私の中で%buildあります:autogen.sh./configureおよびmake

この後make install、セクションですべてをインストールします%install

どこがおかしいの?

ソースコードを手動でインストールする場合、これらはすべて正常に機能することに注意してください。

./autogen.shが削除されると、「/ var / tmp / rpm-tmp.BEyARh:29行目:./configure:そのようなファイルまたはディレクトリはありません」が表示されます。

編集:A-ha!私は問題を知っていると思います。これは、tarボールを抽出して/ BUILDに入れると、 `/ samba / source3 /を検索する必要があるときに、etcなどのルート/sambaディレクトリを./autogen.sh検索します。これを設定するにはどうすればよいですか?


CMakeをチェックしてください。ソースアーカイブを作成できるモジュールCPacがあり、debian、red hat、nsis、およびmac os xインストーラーを提供します。ただの提案!
-alexmherrmann

回答:


2

私が最初に試みることは、行を置き換えることです

autogen.sh

あなたの.specファイルで

./autogen.sh

autogen.shはおそらくPATH上にないためです。./を先頭に置く#!と、上部にシェバン()があれば、ファイルを実行するようシェルに指示します。autogen.shの最初の行がのようなものでない場合#! /bin/bash、代わりに./autogen.sh試すことができます

bash autogen.sh

ファイルをbashスクリプトとして明示的に実行します。

変更された質問に応じて編集:

これをハックする1つの方法は、変更することです

./autogen.sh

./source3/autogen.sh

またはへ

pushd source3
./autogen.sh
popd

rpmファイルを見つけることができます。ただし、これが「良い」パッケージと見なされるかどうかはわかりません。

変更可能なRPM設定もあります。Edward C. BaileyによるMaximum RPMと呼ばれる優れた本があり、RPMの作成についてすべてを説明しています。このセクションは、奇妙なビルド設定のための設定に役立ちます。


これをチェックしただけで、違いはありません:(削除./autogen.sh./configureてまっすぐに移動しても、トリップします
Federer

それでもautogen.sh : command not foundエラーが発生しますか、それとも新しいエラーがありますか?
SethMMorton

「+ ./autogen.sh /var/tmp/rpm-tmp.r9Ax0q:29行目:./autogen.sh:そのようなファイルまたはディレクトリエラーなし:/ var / tmp / rpm-tmpからの終了ステータスが不正です。 r9Ax0q(%build)」
フェデラー

.specファイルが長すぎない場合、これを元の投稿に追加できますか?ラインBに表示されるエラーは、ラインAの何かが原因である場合があります。
SethMMorton

1
autogen.sh行を削除する必要があることに、Ignacioに同意します。私が混乱させたのは、この行を削除してもビルドが失敗したが、同じエラーが発生したということです。autogen.shを参照する行がなければrpm、それを探すべきではなかったので、それが存在しなかったと文句を言うべきではありませんでした。以前にautogen.shを実行するように指示する行を削除したことは確かですか?
SethMMorton
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.