.spec 文件正在创建一个空的 .rpm
.spec file is creating an empty .rpm
我正在尝试创建一个 RPM 来解压缩 tar,更改一些权限,然后根据进程回显某些内容。这是有问题的 .spec
文件。
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
文件会干净地构建并创建一个 rpm。它还运行命令,我在 /local/0/opt
中获得了相关文件。有问题的构建命令是 rpmbuild -ba agent.spec
。我试过在详细模式下执行此操作,但它也没有真正给我一个错误。
但是,生成的 .rpm
文件是空的,实际上没有做任何事情。我认为这是 .spec
文件的问题。但是,由于输出根本没有给我错误,我不确定问题出在哪里。
我一直在关注http://www.rpm.org/max-rpm/s1-rpm-build-creating-spec-file.html
我认为问题出在 %files
部分。我希望它只将 tar 部署到 local/0/opt
,但我对在哪里声明安装目录以及在哪里声明我想要的包感到困惑。
您需要将 /local/0/opt
添加到您的 %files
部分
%files
/local/0/opt
指示 rpm 构建过程在何处查找它应该在最后打包的文件。
您还需要在 %install
中安装和操作与您的 rpm buildroot 相关的文件
%install
mkdir -p %{buildroot}/local/0
cp -r /root/rpmbuild/BUILD/Agent %{buildroot}/local/0/opt
cd %{buildroot}/local/0/opt/Agent
因为 rpm 构建过程会在里面查找要打包的文件。
您可能想要清理该规范文件,包括将 %clean
放在 %files
之上并将 %install
操作移至 %build
.
我正在尝试创建一个 RPM 来解压缩 tar,更改一些权限,然后根据进程回显某些内容。这是有问题的 .spec
文件。
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
文件会干净地构建并创建一个 rpm。它还运行命令,我在 /local/0/opt
中获得了相关文件。有问题的构建命令是 rpmbuild -ba agent.spec
。我试过在详细模式下执行此操作,但它也没有真正给我一个错误。
但是,生成的 .rpm
文件是空的,实际上没有做任何事情。我认为这是 .spec
文件的问题。但是,由于输出根本没有给我错误,我不确定问题出在哪里。
我一直在关注http://www.rpm.org/max-rpm/s1-rpm-build-creating-spec-file.html
我认为问题出在 %files
部分。我希望它只将 tar 部署到 local/0/opt
,但我对在哪里声明安装目录以及在哪里声明我想要的包感到困惑。
您需要将 /local/0/opt
添加到您的 %files
部分
%files
/local/0/opt
指示 rpm 构建过程在何处查找它应该在最后打包的文件。
您还需要在 %install
%install
mkdir -p %{buildroot}/local/0
cp -r /root/rpmbuild/BUILD/Agent %{buildroot}/local/0/opt
cd %{buildroot}/local/0/opt/Agent
因为 rpm 构建过程会在里面查找要打包的文件。
您可能想要清理该规范文件,包括将 %clean
放在 %files
之上并将 %install
操作移至 %build
.