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
.
答案1
要在 CoreOS 机器上执行此操作,请按照以下提示进行操作在这里指导:
- 启动 CoreOS 盒子并以
core
用户身份连接 - 运行
/bin/toolbox
命令进入库存 Fedora 容器。 - 安装您需要的任何软件。在这种情况下要安装 nano,就像执行 a 一样简单
dnf -y install nano
(dnf 已取代 yum) - 使用nano来编辑文件。 “但是等等——我在一个容器里!”不用担心——主机的文件系统是
/media/root
在容器内安装的。因此,只需将示例文本文件保存在 中/media/root/home/core/test.txt
,然后保存exit
到容器中,最后列出 中的文件/home/core
。注意到你的 test.txt 文件了吗?
如果其中任何部分过于神秘或令人困惑,请提出后续问题。 :-)
在最近的CoreOS 47.83.202103292105-0中,主机被放置在/host
而不是/media/root
.
答案2
虽然 Dan 的答案基本上是正确的,但 yum 似乎在最新的 CoreOS 安装中不再工作(昨天从最新的 coreos_product_vmware_ova.ova 安装)http://stable.release.core-os.net/amd64-usr/current到 Windows 上的 VMWare 工作站)。
引用的 yum 命令最后会中止。因此将步骤(3)替换为命令
/usr/bin/dnf install nano
成功在 Fedora 容器中安装 nano。
在这个 Fedora 容器中使用 nano 进行编辑(可通过 /bin/toolbox 从 CoreOS 提示符访问),同时遵守 Dan 帖子的安装建议。可以通过“exit”命令离开 Fedora 容器。
答案3
我在a上找到了一个更简单的选项红迪网帖子
首先以用户身份连接,然后在执行以下命令之前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
使用。
答案4
虽然工具箱方法对于大多数人来说是正确的方法,但我一直在寻找可以在 /opt/bin 中运行的二进制文件。
这个链接static-binaries,构建为静态链接二进制文件的各种 *nix 工具,下载static-binaries的源码_GitHub_酷徒有一个 Dockerfile 和一个脚本,用于在 Debian 上编译 Nano 的静态二进制版本,该版本将在 CoreOS 上运行。
static-binaries/nano at master · 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