![如何在 CentOS 7 上获取最新版本的 nano(4.5)?](https://linux22.com/image/744206/%E5%A6%82%E4%BD%95%E5%9C%A8%20CentOS%207%20%E4%B8%8A%E8%8E%B7%E5%8F%96%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E7%9A%84%20nano%EF%BC%884.5%EF%BC%89%EF%BC%9F.png)
nano 编辑器的最新版本是 4.5(https://www.nano-editor.org/)... 我在 CentOS 7 服务器上运行 2.3.1 并想升级。但似乎没有存储库(EPEL、Remi 等)有比 2.3 更新的版本。
我如何获得最新的 nano?我需要在服务器上从头构建它吗?如果可能的话,我更愿意使用它yum
来管理安装/升级。
我在 nano 页面上看到了很多下载选项(软件包、Open SUSE[?]、发行版等等),但我觉得它们似乎都不适合 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 相当简单。
前往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
文件(如果您在配置期间没有指定安装位置)。
这种方法还有待改进,但总体来说我很满意。
默认情况下,configure 脚本将最终安装指向默认位置/usr/local/bin
。您可以使用--prefix=PREFIX
传递给的(其中 PREFIX 是绝对文件路径)进行自定义./configure
,但我不介意使用默认值。有关更多信息,请参阅./configure --help
。
我的机器不包含usr/local/bin
在内$PATH
;为方便起见,您可以使用 卸载 nano 2 yum remove nano
,或者nano
并nano2
安装符号链接(如果您想保留两者,原因如下):
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/etc
strace -e open nano
./configure --help
默认情况下,从源代码编译似乎不包含全局配置。我只是使用 my~/.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 月:我在“精简”模式下使用了 scopatz 的语法高亮自动安装脚本(sh -l
而不是sh
单行脚本):https://github.com/scopatz/nanorc. 还有其他语法高亮包可用。
我还必须注释掉set const
该特定语法,因为该语法已被弃用,并且 nano 4 默认使用软换行。从 nano 2.7 开始,语法已更改为set constantshow
anyway。
答案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