.spec 文件需要做哪些更改才能重命名安装软件?
What changes needed in .spec file to rename installing software?
我正在尝试在 CentOS 8 上重建 nano rpm 包,所以在安装它之后我将能够 运行 nano 使用命令 newnano.
经过一番谷歌搜索后,我得出的结论是我需要更改 .spec 文件并使用命令 rpmbuild -ba nano.spec
.
构建包
这是我已经尝试过的:
- 更改 .spec 文件开头的名称,因此看起来像这样:
Summary: A small text editor
Name: newnano
...
但是当我尝试构建包时出现错误:Bad exit status from '/var/tmp/rpm-tmp.DSP7dc (%prep)
据我了解,在解压缩 tar 存档后它试图 cd newnano-2.9.8
但没有这样的目录。
- 在 %install 部分添加别名:
%install
cd build
%make install
rm -f %{buildroot}%{_infodir}/dir
alias newnano="nano"
...
构建和安装成功但没有创建别名。
- 使用 %package。我在原始 .spec 中的
%description
之后和 %prep
之前插入:
%package -n newnano
Summary: test
%description -n newnano
test
另外,我将 -n newnano
添加到 %files
部分。构建和安装成功但未添加新命令。
那么我必须如何更改 .spec 文件才能实现我的目标?
您需要做几件事:
- 获取当前的规范文件(看起来像你那样做了)
- 更改 RPM 的名称(看起来不错)
- 更改 GNU 包的名称(提示:查看 configure.ac)
- 向修改最终可执行文件的 RPM 添加另一个补丁(提示:查看 src/Makefile.am - 您想要重命名
nano
并删除 rnano
符号链接)
- 重建
您可以 可能 重命名 spec 文件 %install
节中的内容,而不是乱用 src/Makefile.am
,但我不太了解nano
告诉您它是否仍能正确识别自己,等等。
玩得开心!
有一种非常简单的方法可以通过 rpmrebuild
和 .rpm
nano
包来实现。
rpmrebuild -enp nano.rpm
- 在
.spec
文件中(它将在上一个命令后打开)你应该做这些:
- 将
Name: nano
替换为 Name: newnano
(可选,但推荐)
- 在第一个
exit 0
行之前添加 mv /usr/bin/nano /usr/bin/newnano
。这部分你可以在 %changelog
之前找到
- 仔细看,记得关闭
vim
后看到的重建路径.rpm
- 通过
rpm -i
命令安装重建的 .rpm
- (可选:可能需要重启)
我正在尝试在 CentOS 8 上重建 nano rpm 包,所以在安装它之后我将能够 运行 nano 使用命令 newnano.
经过一番谷歌搜索后,我得出的结论是我需要更改 .spec 文件并使用命令 rpmbuild -ba nano.spec
.
构建包
这是我已经尝试过的:
- 更改 .spec 文件开头的名称,因此看起来像这样:
Summary: A small text editor
Name: newnano
...
但是当我尝试构建包时出现错误:Bad exit status from '/var/tmp/rpm-tmp.DSP7dc (%prep)
据我了解,在解压缩 tar 存档后它试图cd newnano-2.9.8
但没有这样的目录。 - 在 %install 部分添加别名:
%install
cd build
%make install
rm -f %{buildroot}%{_infodir}/dir
alias newnano="nano"
...
构建和安装成功但没有创建别名。 - 使用 %package。我在原始 .spec 中的
%description
之后和%prep
之前插入:
%package -n newnano
Summary: test
%description -n newnano
test
另外,我将-n newnano
添加到%files
部分。构建和安装成功但未添加新命令。
那么我必须如何更改 .spec 文件才能实现我的目标?
您需要做几件事:
- 获取当前的规范文件(看起来像你那样做了)
- 更改 RPM 的名称(看起来不错)
- 更改 GNU 包的名称(提示:查看 configure.ac)
- 向修改最终可执行文件的 RPM 添加另一个补丁(提示:查看 src/Makefile.am - 您想要重命名
nano
并删除rnano
符号链接) - 重建
您可以 可能 重命名 spec 文件 %install
节中的内容,而不是乱用 src/Makefile.am
,但我不太了解nano
告诉您它是否仍能正确识别自己,等等。
玩得开心!
有一种非常简单的方法可以通过 rpmrebuild
和 .rpm
nano
包来实现。
rpmrebuild -enp nano.rpm
- 在
.spec
文件中(它将在上一个命令后打开)你应该做这些:- 将
Name: nano
替换为Name: newnano
(可选,但推荐) - 在第一个
exit 0
行之前添加mv /usr/bin/nano /usr/bin/newnano
。这部分你可以在%changelog
之前找到
- 将
- 仔细看,记得关闭
vim
后看到的重建路径 - 通过
rpm -i
命令安装重建的.rpm
- (可选:可能需要重启)
.rpm