.spec 文件需要做哪些更改才能重命名安装软件?

What changes needed in .spec file to rename installing software?

我正在尝试在 CentOS 8 上重建 nano rpm 包,所以在安装它之后我将能够 运行 nano 使用命令 newnano.
经过一番谷歌搜索后,我得出的结论是我需要更改 .spec 文件并使用命令 rpmbuild -ba nano.spec.
构建包 这是我已经尝试过的:

  1. 更改 .spec 文件开头的名称,因此看起来像这样:
    Summary: A small text editor
    Name: newnano
    ...
    但是当我尝试构建包时出现错误:Bad exit status from '/var/tmp/rpm-tmp.DSP7dc (%prep)
    据我了解,在解压缩 tar 存档后它试图 cd newnano-2.9.8 但没有这样的目录。
  2. 在 %install 部分添加别名:
    %install
    cd build
    %make install
    rm -f %{buildroot}%{_infodir}/dir
    alias newnano="nano"
    ...
    构建和安装成功但没有创建别名。
  3. 使用 %package。我在原始 .spec 中的 %description 之后和 %prep 之前插入:
    %package -n newnano
    Summary: test
    %description -n newnano
    test
    另外,我将 -n newnano 添加到 %files 部分。构建和安装成功但未添加新命令。

那么我必须如何更改 .spec 文件才能实现我的目标?

您需要做几件事:

  1. 获取当前的规范文件(看起来像你那样做了)
  2. 更改 RPM 的名称(看起来不错)
  3. 更改 GNU 包的名称(提示:查看 configure.ac
  4. 向修改最终可执行文件的 RPM 添加另一个补丁(提示:查看 src/Makefile.am - 您想要重命名 nano 并删除 rnano 符号链接)
  5. 重建

您可以 可能 重命名 spec 文件 %install 节中的内容,而不是乱用 src/Makefile.am,但我不太了解nano 告诉您它是否仍能正确识别自己,等等。

玩得开心!

有一种非常简单的方法可以通过 rpmrebuild.rpm nano 包来实现。

  1. rpmrebuild -enp nano.rpm
  2. .spec 文件中(它将在上一个命令后打开)你应该做这些:
    • Name: nano 替换为 Name: newnano (可选,但推荐)
    • 在第一个 exit 0 行之前添加 mv /usr/bin/nano /usr/bin/newnano。这部分你可以在 %changelog
    • 之前找到
  3. 仔细看,记得关闭vim
  4. 后看到的重建路径.rpm
  5. 通过 rpm -i 命令安装重建的 .rpm
  6. (可选:可能需要重启)