我正在为本地的非网络盒子设置Redis RPM。我正在尝试创建一个符号链接:/ usr / sbin / redis-server - >的/ opt / redis的/ redis的服务器
但是,当我执行rpm -Uvh redis-3.2.7-1.rpm
时,它安装得很好/opt/redis/redis-server
但从不创建符号链接。这是我的spec文件的相关部分:
%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
答案 0 :(得分:2)
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
不失败的事实告诉我你真的创建了符号链接,并且你正在以root身份构建RPM,这是一个非常糟糕的主意。
我假设tarball在顶层扩展opt
;如果不是,cp
也不正确。