rpmbuild -/usr/sbin符号链接不安装
问题描述:
我正在为本地未联网框设置Redis RPM。我尝试创建一个符号链接:/ usr/sbin/redis-server - >/opt/redis/redis-serverrpmbuild -/usr/sbin符号链接不安装
但是,当我执行rpm -Uvh redis-3.2.7-1.rpm
时,它安装正常,但从未创建符号链接。这里是我的规格文件的相关部分:
%build
# Empty section.
%install
rm -rf %{buildroot}
rm -f /usr/sbin/redis-server
mkdir -p %{buildroot}
# in builddir
cp -a * %{buildroot}
ln -sf /opt/redis/redis-server /usr/sbin/redis-server
%clean
rm -rf %{buildroot}
%files
/opt/redis/*
/etc/init.d/redis
答
ln -sf /opt/redis/redis-server /usr/sbin/redis-server
需求是ln -sf /opt/redis/redis-server %{buildroot}/usr/sbin/redis-server
然后/usr/sbin/redis-server
需要被添加到%files
部分。还要删除rm
中的%install
。
的事实ln
没有不失败告诉我,你真的让符号链接,而你正在构建的RPMs根这是一个引人注目的坏主意。
我假设tarball在顶层扩展为opt
;如果不是,您的cp
也不正确。
啊,这很有道理。我的问题是我没有在我的tarball中创建'usr/sbin'目录。 – ev0lution37
而我只作为root运行,因为我在Docker容器中执行它。所以不用担心。 – ev0lution37
如果需要,您也可以从spec文件中执行'mkdir -p'。 –