重命名安装软件需要在 .spec 文件中进行哪些更改?



我正在尝试在 CentOS 8上重建 nano rpm 软件包,所以安装后我将能够使用命令newnano运行nano
经过一些谷歌搜索,我得出的结论是我需要更改 .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 部分中添加别名:
    %installcd build
    %make install

    rm -f %{buildroot}%{_infodir}/dir
    alias newnano="nano"...

    构建和安装成功,但未创建别名。
  3. 使用 %包。我在原始 .spec 中%description之后和%prep之前插入:
    %package -n newnano
    Summary: test
    %description -n newnano
    test
    我也-n newnano添加到%files部分。构建和安装成功,但未添加新命令。

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

有一种非常简单的方法可以通过rpmrebuild.rpmnano包来完成它。

  1. rpmrebuild -enp nano.rpm
  2. .spec文件中(它将在上一个命令后打开),您应该执行以下操作:
    • Name: nano替换为Name: newnano(可选,但建议使用)
    • 在第一行exit 0之前添加mv /usr/bin/nano /usr/bin/newnano。您可以在%changelog之前找到此部分
  3. 仔细观察并记住关闭vim后将看到的重建.rpm路径
  4. 通过rpm -i命令安装重建的.rpm
  5. (可选:也许您需要重新启动)

你必须做几件事:

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

与其弄乱src/Makefile.am,不如在规范文件的%install节中重命名内容,但我对nano的了解不足以告诉您它是否仍然会正确识别自己等。

玩得愉快!

相关内容