有什么方法可以在CoreOS上安装Nano吗?


30

CoreOS不包括程序包管理器,但我首选的文本编辑器是Nano,而不是vi或vim。有没有办法解决?

gcc 不可用,因此无法从源代码进行编译:

core@core-01 ~/nano-2.4.1 $ ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
checking for style of include used by make... none
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/home/core/nano-2.4.1':
configure: error: no acceptable C compiler found in $PATH

为了说明这一点,当我发现我想使用Nano时,我正在遵循本指南


3
在CoreOS上,除了启动容器之外,您真的不对操作系统进行任何操作吗?
约旦2015年

1
是的,但是如果我可能需要创建和编辑dockerfile或其他配置文件
codecowboy

2
coreos的预期用例是您在工作站上编辑docker文件,然后使用Fleet推送到coreos。无需连接到机器本身。
spuder

1
CoreOs团队(通过twitter)带领我阅读了此文档该文档建议我是否愿意安装和使用Nano,而不管我是否应该
codecowboy

1
AFAIK,您仍然需要在CoreOS编辑单元文件(请证明我是错误的)。
Dan Esparza 2015年

Answers:


56

要在CoreOS机器上执行此操作,请遵循此处指南的提示:

  1. 引导CoreOS盒子并以core用户身份连接
  2. 运行/bin/toolbox命令以输入Fedora库存容器。
  3. 安装您需要的任何软件。在这种情况下,要安装nano,就和安装dnf -y install nano(dnf代替yum)一样简单。
  4. 使用nano编辑文件。“但是等等-我在一个容器里!” 不用担心-主机的文件系统/media/root在容器内时已挂载。因此,只需将示例文本文件保存在/media/root/home/core/test.txt,然后exit是容器,最后在中列出文件即可/home/core。注意到您的test.txt文件了吗?

如果其中任何部分过于含糊或令人困惑,请询问后续问题。:-)


7

虽然Dan的答案基本上是正确的,但似乎yum在最新的CoreOS安装中不再起作用(昨天从http://stable.release.core-os.net/amd64-usr/的最新coreos_production_vmware_ova.ova安装)当前安装到Windows上的VMWare工作站中)。

引用的yum命令最后终止。因此,将命令替换为步骤(3)

/usr/bin/dnf install nano

成功将nano安装到fedora容器中。

在此fedora容器内对nano进行编辑(可从// bin / toolbox进入CoreOS提示符),同时遵守Dan帖子的安装建议。离开fedora容器可以通过“退出”命令完成。


5

我在reddit帖子上发现了一个更简单的选项

首先以core用户身份连接,然后在执行以下命令之前确保/opt/bin存在(sudo mkdir -p /opt/bin):

docker run -d --name nano base/archlinux:latest sleep && sudo docker cp nano:/usr/bin/nano /opt/bin && docker rm nano

希望/opt/bin它已经存在,PATH因此一旦它起作用,您将可以nano使用。


这是对系统有效的唯一建议,而不仅仅是在Docker容器内部。还有其他提示建议从不再托管它的googlecode.com下载它。
艾伦(Alan)

上面的命令不适用于当前的archlinux / base。我尝试通过从另一个发行版中提取nano二进制文件来做同样的事情,但这也不起作用,也不应该期望它起作用,因为nano不是静态链接的。
ChrisW

3

CoreOS基于ChromeOS,因此我认为ChromeOS的说明应该可以使用。例如,有关在Chrome上安装Nano的说明如下:

#!/bin/sh
sudo echo -n
sudo mkdir /tmp/nano
cd /tmp/nano
sudo wget http://v48.googlecode.com/files/nano.tar.gz
sudo tar -zxvf nano.tar.gz
sudo mv ./nano /usr/bin
sudo rm -rf /tmp/nano 

来源摘要:https : //gist.github.com/alex-endfinger/1510908


1
这是一个很好的建议,但是/ user / bin在CoreOS上受写保护nano,甚至从/ tmp / nano也无法运行
Dan Esparza 2015年

这也不再起作用,因为二进制链接已死。
ChristW

1
您确定它基于ChromeOS吗?
代码Bling

0

虽然工具箱方法对于大多数人来说是正确的,但我一直在寻找可以在/ opt / bin中运行的二进制文件。

此链接GitHub的-安德鲁-d /静态的二进制文件:如内置静态链接的二进制文件不同的* nix工具有Dockerfile和编制纳米Debian的静态二进制版本,这将在CoreOS工作的脚本。

静态二进制文件/ nano掌握·andrew-d / static-binaries·GitHub

最好克隆存储库并编译二进制文件。

要使用同一仓库中的预编译二进制文件,请执行以下操作:

curl -L https://raw.githubusercontent.com/andrew-d/static-binaries/master/binaries/linux/x86_64/nano > /opt/bin/nano
chmod +x /opt/bin/nano
nano --version
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.