如何在 CentOS 7 上获取最新版本的 nano(4.5)?

如何在 CentOS 7 上获取最新版本的 nano(4.5)?

nano 编辑器的最新版本是 4.5(https://www.nano-editor.org/)... 我在 CentOS 7 服务器上运行 2.3.1 并想升级。但似乎没有存储库(EPEL、Remi 等)有比 2.3 更新的版本。

我如何获得最新的 nano?我需要在服务器上从头构建它吗?如果可能的话,我更愿意使用它yum来管理安装/升级。

我在 nano 页面上看到了很多下载选项(软件包、Open SU​​SE[?]、发行版等等),但我觉得它们似乎都不适合 yum。

答案1

EL 7 软件包是几年前建立的,由于它是一个稳定的发行版,因此其版本仍为 2.3。许多存储库不会替换基础 EL 中的软件包。

要继续使用 Red Hat RPM,请考虑升级编辑器环境的操作系统(可以是虚拟机或容器)。

根据 CentOS 8 nano.spec 和镜像上的软件包,EL 8 似乎已升级到 2.9。不是最新版本。

Fedora 30 较新,为 4.2。

或者,您可以自行编译,也许采用 Fedora 规范并重建。与往常一样,如果您自行构建,则需要承担更多责任。

答案2

要在 CentOS 7 机器上获取 Nano 4 相当简单。

  1. 前往https://www.nano-editor.org/dist/v4/并获取最新的 .xz(截至 2020 年 2 月,v4.8 是最新版本)。

  2. cd到合适的目录,例如cd /opt

  3. 创建一个子目录来存储所有内容:mkdir -p /opt/apps/nano
    就像有些人一样,你也可以下载匹配的 GPG 签名并验证

  4. 解压缩并解压到名为的子目录中nano-4.8tar -Jxvf nano-4.8.tar.xz

  5. CD 到解压的文件夹并运行 configure cd nano-4.8 && ./configure:。
    您可能需要安装ncurses;读取的输出make,如果是的话它会告诉你。

  6. 编译:make && sudo make install

  7. 整理并符号链接二进制nano文件(如果您在配置期间没有指定安装位置)。

这种方法还有待改进,但总体来说我很满意。

默认情况下,configure 脚本将最终安装指向默认位置/usr/local/bin。您可以使用--prefix=PREFIX传递给的(其中 PREFIX 是绝对文件路径)进行自定义./configure,但我不介意使用默认值。有关更多信息,请参阅./configure --help

我的机器不包含usr/local/bin在内$PATH;为方便起见,您可以使用 卸载 nano 2 yum remove nano,或者nanonano2安装符号链接(如果您想保留两者,原因如下):

mv /bin/nano /bin/nano2 ln -s /usr/local/bin/nano /bin/nano

完成此操作后,请注意一些.nanorc配置变量已经发生变化,因此如果您使用,set const则需要更新set constantshow

我个人使用

set softwrap
set constantshow
include "/usr/local/share/nano/*.nanorc"

包含启用语法着色,其他两个是不言而喻的。Nano 4 现在默认使用软换行,但我保留了它。

softwrap 很有用,您可以避免在文件中无意中插入换行符(换行符的宽度超过限制)。

您可以在~/.nanorc全局nanorc文件中定义这些或全局执行这些操作。(位置各不相同)。

有一件事我一直没能弄清楚,那就是这个全局配置应该放在哪里——通常的路径,如/etc、、等等,都不起作用。显示 nano 甚至没有尝试在任何常见位置打开全局配置文件。也许它需要在编译时指定另一个标志,但没有什么明显的突出之处/etc/default。文档在版本 3 之后也发生了变化,并模糊地提到了一个位置不同的系统范围的配置文件。/usr/local/etcstrace -e open nano./configure --help

默认情况下,从源代码编译似乎不包含全局配置。我只是使用 my~/.nanorc并从那里包含语法突出显示文件,工作正常。也许调查为 repo RPM 编译的版本会发现需要更改的内容。

完整的选项列表nanorc可以在文档(man nanorchttps://www.nano-editor.org/dist/v4/nanorc.5.html)。

其他一些语法高亮注释也值得一读https://www.mc-guinness.co.uk/blog/20160307/configuring-nano-text-editor-in-ubuntu/以及 SE、AskUbuntu 等上的一些其他帖子。

编辑,2020 年 2 月:我在“精简”模式下使用了 scopatz 的语法高亮自动安装脚本(sh -l而不是sh单行脚本):https://github.com/scopatz/nanorc. 还有其他语法高亮包可用。

我还必须注释掉set const该特定语法,因为该语法已被弃用,并且 nano 4 默认使用软换行。从 nano 2.7 开始,语法已更改为set constantshowanyway。

答案3

根据@Chris Woods 的回答 - 我制作了一行脚本(nano 版本 5.9)

$ sudo yum install gcc ncurses-devel && mkdir /opt/apps/nano && curl https://www.nano-editor.org/dist/v5/nano-5.9.tar.gz -o /opt/apps/nano/nano-5.9.tar.gz && cd /opt/apps/nano && tar -xvf nano-5.9.tar.gz && cd nano-5.9 && ./configure &&  make && sudo make install && mv /bin/nano /bin/nano2 && ln -s /usr/local/bin/nano /bin/nano

答案4

不行。Nano 4.5 依赖 CentOS 7 存储库中没有的软件包。如果你想要体验 CentOS 的前沿技术,请使用 Fedora

相关内容