nano 编辑器的最新版本是 4.5 ( https://www.nano-editor.org/ )...我在 CentOS 7 服务器上运行 2.3.1 并且想要升级。但似乎没有任何 repos(EPEL、Remi 等)有任何比 2.3 更新的东西。
如何获得最新的 nano?我需要在服务器上从头开始构建它吗?如果可能的话,我宁愿能够用来yum
管理安装/升级。
我在 nano 页面上看到很多下载选项(包、Open SUSE[?]、发行版、等等),但它们似乎都不适合 yum。我认为。
在 CentOS 7 机器上安装 Nano 4 相当简单。
前往https://www.nano-editor.org/dist/v4/并获取最新的 .xz(截至 2020 年 2 月,v4.8 是最新版本)。
cd
到合适的目录,例如cd /opt
.创建一个子目录来存储所有内容:
mkdir -p /opt/apps/nano
像某些人一样,您也可以下载匹配的 GPG 签名并进行验证。
解压缩并解压缩到名为 的子目录中
nano-4.8
:tar -Jxvf nano-4.8.tar.xz
CD 到解压缩的文件夹并运行 configure:
cd nano-4.8 && ./configure
。您可能需要安装ncurses;阅读的输出,
make
如果是这样,它会告诉你。编译:
make && sudo make install
整理并符号链接
nano
二进制文件(如果您在配置期间未指定安装位置)。这种方法可以改进,但总的来说我很满意。
默认情况下,配置脚本将最终安装指向
/usr/local/bin
. 您可以使用--prefix=PREFIX
传递给的(其中 PREFIX 是绝对文件路径)进行自定义,./configure
但我不介意默认值。更多信息可通过./configure --help
.我的机器不包含
usr/local/bin
在$PATH
; 为了过上轻松的生活,您可以使用 卸载 nano 2yum remove nano
,或者如果您出于以下原因想要同时保留这两个符号链接,则可以安装并安装符号链接nano
:nano2
mv /bin/nano /bin/nano2
ln -s /usr/local/bin/nano /bin/nano
执行此操作后,请注意一些
.nanorc
配置变量已更改,因此如果您使用set const
它需要更新为set constantshow
.我个人使用
include 启用语法着色,另外两个是不言而喻的。Nano 4 现在默认软包装,但我把它留在里面了。
softwrap 是有益的,您将避免无意中在文件中插入换行符,而换行符超出了宽度限制)。
您可以
~/.nanorc
在全局nanorc
文件中定义或全局执行这些操作。(地点不同)。我无法弄清楚的一件事是这个全局配置应该去哪里 - 通常的路径,如
/etc
,/etc/default
,/usr/local/etc
等等,不起作用。strace -e open nano
显示 nano 甚至没有尝试在任何常见位置打开全局配置文件。也许它需要在编译时指定另一个标志,但没有什么明显的突出./configure --help
。文档在版本 3 之后也发生了变化,并且模糊地引用了位置不同的系统范围的配置文件。似乎默认情况下从源代码编译不包含全局配置。我只是使用我的
~/.nanorc
并从那里包含语法突出显示文件,工作正常。也许调查为 repo RPM 编译的版本会揭示需要更改的内容。nanorc
文档(man nanorc
或https://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 月:我在“精简”模式(
sh -l
而不是单线)中使用了 scopatz 的语法突出显示自动安装脚本sh
:https ://github.com/scopatz/nanorc 。其他语法高亮包可用。我还必须注释掉,
set const
因为不推荐使用特定的语法,并且默认情况下 nano 4 软包装。从 nano 2.7 开始,语法更改为set constantshow
反正。EL 7 包是几年前建立的,它们的构建仍然是 2.3,因为它是一个稳定的发行版。许多 repos 不会替换来自基本 EL 的包。
要继续使用 Red Hat RPM,请考虑升级编辑器环境的操作系统(可以是 VM 或容器)。
根据 CentOS 8 nano.spec 和镜像上的软件包,EL 8 似乎高达 2.9。不是最新的。
Fedora 30 较新,4.2。
或者,随意编译自己,也许采用 Fedora 规范并重新构建。像往常一样,如果你建立自己,你会承担更多的责任。
根据@Chris Woods 的回答 - 我制作了一行脚本(纳米版 5.9)
你不能。Nano 4.5 依赖于 CentOS 7 存储库中不可用的软件包。如果你想在 CentOS 的感觉中脱颖而出,请使用 Fedora