私はRPMを作成して、tarを解凍し、パーミッションを変更し、プロセスに応じて何かをエコーするようにしようとしています。問題のファイルは.spec
です。.specファイルが空の.rpmを作成しています
Summary: Linux agent V.1
Name: Agent
Version: 1.0
Release: 1
License: GPL
Source: Agent.tar.gz
Vendor: test
Packager: test
%description
Test Linux agent
%prep
if ps aux | grep "[u]cx"; then
pkill -f ucx
else
echo "Current agent is not running."
fi
%setup -n Agent
%install
cp -r /root/rpmbuild/BUILD/Agent /local/0/opt
cd /local/0/opt/Agent
chown -R root.root *
cd bin/
chown root.root test1 test2
chmod 775 test1 test2
chmod +s test1 test2
if ps aux | grep "[u]cy"; then
echo "managerup"
else
echo "manager down"
fi
%files
%clean
rm -rf /root/rpmbuild/BUILD/Agent
構築する場合、.spec
ファイルがきれいに構築し、回転数を作成します。コマンドも実行され、関連ファイルは/local/0/opt
になります。問題のビルドコマンドはrpmbuild -ba agent.spec
です。私は冗長モードでそれをやろうとしましたが、実際に私にエラーを与えているわけでもありません。
ただし、生成された.rpm
ファイルは空であり、実際には何もしません。私はこれが.spec
ファイルの問題だと思う。しかし、出力は私にすべてのエラーを与えていないので、私は問題が何であるか分かりません。
私は問題が%files
部分であると考えていhttp://www.rpm.org/max-rpm/s1-rpm-build-creating-spec-file.html
を追っています。 local/0/opt
にタールを配備するだけですが、インストールディレクトリを宣言する場所と、パッケージ内のどこに宣言するのかが混乱しています。
こんにちは。 投稿する前に実際に試しました。ここで私に与えたエラーです。 'RPMビルドエラー: ディレクトリが見つかりません:/ root/rpmbuild/BUILDROOT/AutomicAgent-1.0-1.x86_64/local/0/opt' – Pudding
@Pudding更新された回答。今すぐ働かなければならない。 –
ご協力ありがとうございます。残念ながら私はまだ '+ cp -r/root/rpmbuild/BUILD/Agent /root/rpmbuild/BUILDROOT/Agent-1.0-1.x86_64/local/0/opt cp:ディレクトリを作成できません 'というエラーが出ます。 rpmbuild/BUILDROOT/Agent-1.0-1.x86_64/local/0/opt ':このようなファイルやディレクトリはありません。私はspecrofファイルの先頭にbuildrootを設定しようとします。単に/ root/rpmbuild/BUILD/{name}がデフォルトのbuildrootであることを確認してください。 – Pudding