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也不正确。

+0

啊,这很有道理。我的问题是我没有在我的tarball中创建'usr/sbin'目录。 – ev0lution37

+0

而我只作为root运行,因为我在Docker容器中执行它。所以不用担心。 – ev0lution37

+0

如果需要,您也可以从spec文件中执行'mkdir -p'。 –