¿Hay alguna forma de instalar Nano en CoreOS?

30

CoreOS no incluye un administrador de paquetes, pero mi editor de texto preferido es Nano, no vi o vim. ¿Hay alguna forma de evitar esto?

gcc no está disponible, por lo que no es posible compilar desde la fuente:

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

Para poner esto en contexto, estaba siguiendo esta guía cuando descubrí que quería usar Nano

codecowboy
fuente
3
¿No es el punto de CoreOS que realmente no haces nada en el sistema operativo en sí mismo aparte de los contenedores de inicio?
jordanm
1
Sí, pero si necesito crear y editar un dockerfile u otro archivo de configuración
codecowboy
2
El caso de uso previsto para coreos es que edite su archivo acoplable en su estación de trabajo y empuje a coreos con flota. No es necesario conectarse a la máquina en sí.
Spuder
1
El equipo CoreOS (vía twitter) me llevó a esta documentación que sugiere que es posible instalar y utilizar Nano si eso es lo que quiero hacer, independientemente de si yo debería
codecowboy
1
AFAIK, aún necesita editar archivos de unidad en CoreOS (por favor, demuestre que estoy equivocado).
Dan Esparza

Respuestas:

56

Para hacer esto en una caja CoreOS, siguiendo las sugerencias de la guía aquí :

  1. Inicie la caja CoreOS y conéctese como coreusuario
  2. Ejecute el /bin/toolboxcomando para ingresar al contenedor stock de Fedora.
  3. Instale cualquier software que necesite. Para instalar nano en este caso, sería tan simple como hacer un dnf -y install nano(dnf ha reemplazado a yum)
  4. Use nano para editar archivos. "Pero espera, ¡estoy en un contenedor!" No se preocupe: el sistema de archivos del host está montado en el /media/rootinterior del contenedor. Así que solo guarde un archivo de texto de muestra en /media/root/home/core/test.txt, luego exitel contenedor, y finalmente vaya a listar los archivos /home/core. Observe su archivo test.txt?

Si alguna parte de esto es demasiado críptica o confusa, haga preguntas de seguimiento. :-)

Dan Esparza
fuente
7

Si bien la respuesta de Dan es básicamente correcta, parece que yum ya no funciona en la última instalación de CoreOS (instalada ayer desde la última coreos_production_vmware_ova.ova de http://stable.release.core-os.net/amd64-usr/ actual en una estación de trabajo VMWare en Windows).

El citado comando yum aborta al final. Entonces reemplace el paso (3) con el comando

/usr/bin/dnf install nano

que instala con éxito nano en el contenedor fedora.

Realice sus ediciones con nano dentro de este contenedor de fedora (accesible desde el indicador de CoreOS por / bin / toolbox), mientras obedece el aviso de montaje de la publicación de Dan. Se puede abandonar el contenedor fedora con el comando 'salir'.

Heri
fuente
5

Hay una opción más simple que encontré en una publicación de reddit

Primero conéctese como coreusuario y luego, asegúrese de que /opt/binexista ( sudo mkdir -p /opt/bin) antes de ejecutar el siguiente comando:

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

Esperemos /opt/binque ya esté en el PATHmodo, tan pronto como funcionó, tendrá nanodisponible.

rels
fuente
Esta fue la única sugerencia que funcionó para el sistema en lugar de solo dentro de un contenedor acoplable. También otros consejos sugirieron descargarlo de googlecode.com que ya no lo aloja.
Alan
El comando anterior ya no funciona con el archlinux / base actual. Intenté hacer lo mismo extrayendo el nano binario de otra distribución, pero esto tampoco funciona y no debería esperarse que funcione, ya que nano no está estáticamente vinculado.
ChrisW
3

CoreOS se basa en ChromeOS, por lo que creo que las instrucciones para ChromeOS deberían funcionar. Como ejemplo, las instrucciones para instalar Nano en Chrome son:

#!/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 

Fuente Gist: https://gist.github.com/alex-endfinger/1510908

shivams
fuente
1
Esta es una buena sugerencia, pero / user / bin está protegido contra escritura en CoreOS, y nanono se ejecuta, incluso desde / tmp / nano
Dan Esparza
Esto tampoco funciona más, ya que el enlace binario está muerto.
ChrisW
1
¿Estás seguro de que está basado en ChromeOS?
Código Bling
0

Si bien el enfoque de la caja de herramientas es el correcto para la mayoría, estaba buscando un binario que pudiera ejecutar en / opt / bin.

Este enlace GitHub - andrew-d / static-binaries: Varias herramientas * nix creadas como binarios enlazados estáticamente tienen un Dockerfile y un script para compilar una versión binaria estática de nano en Debian que funcionará en CoreOS.

static-binaries / nano en master · andrew-d / static-binaries · GitHub

Sería mejor clonar el repositorio y compilar el binario.

Para usar el binario precompilado del mismo repositorio:

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
ChrisW
fuente