Esiste un modo per installare Nano su CoreOS?


30

CoreOS non include un gestore di pacchetti ma il mio editor di testo preferito è Nano, non vi o vim. C'è un modo per aggirare questo?

gcc non è disponibile quindi non è possibile compilare dal sorgente:

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

Per mettere questo nel contesto, stavo seguendo questa guida quando ho scoperto che volevo usare Nano


3
Il punto di CoreOS è che non si fa davvero nulla sul sistema operativo diverso da avviare container?
— Giordania,

1
Sì, ma se potessi aver bisogno di creare e modificare un file docker o un altro file di configurazione
— codecowboy,

2
Il caso d'uso previsto per coreos è che si modifica il file docker sulla workstation e si passa a coreos con la flotta. Non è necessario connettersi alla macchina stessa.
— spuder,

1
Il team di CoreOs (tramite twitter) mi ha portato a questa documentazione che suggerisce che è possibile installare e utilizzare Nano se è quello che voglio fare, indipendentemente dal fatto che dovrei
— farlo

1
AFAIK, devi ancora modificare i file di unità su CoreOS (per favore dimostrami che ho torto).
— Dan Esparza,

Risposte:


56

Per fare ciò su una scatola CoreOS, seguendo i suggerimenti della guida qui :

  1. Avvia il box CoreOS e connettiti come coreutente
  2. Esegui il /bin/toolboxcomando per inserire il contenitore Fedora di serie.
  3. Installa il software di cui hai bisogno. Per installare nano in questo caso, sarebbe semplice come fare un dnf -y install nano(dnf ha sostituito yum)
  4. Usa nano per modificare i file. "Ma aspetta - sono in un contenitore!" Non preoccuparti: il file system dell'host è montato /media/rootquando si trova all'interno del contenitore. Quindi basta salvare un file di testo di esempio in /media/root/home/core/test.txt, quindi exitil contenitore e infine andare a elencare i file /home/core. Hai notato il tuo file test.txt?

Se una parte di questo è troppo criptica o confusa, si prega di porre domande di follow-up. :-)


7

Sebbene la risposta di Dan sia sostanzialmente corretta, sembra che yum non funzioni più nell'ultima installazione CoreOS (installata ieri dall'ultimo coreos_production_vmware_ova.ova da http://stable.release.core-os.net/amd64-usr/ corrente in una workstation VMWare su Windows).

Il comando yum citato si interrompe alla fine. Quindi sostituire il passaggio (3) con il comando

/usr/bin/dnf install nano

che installa correttamente nano nel contenitore fedora.

Fai le tue modifiche con nano all'interno di questo contenitore fedora (accessibile dal prompt di CoreOS da / bin / toolbox), obbedendo al consiglio di montaggio del post di Dan. Lasciare il contenitore fedora può essere fatto con il comando 'exit'.


5

C'è un'opzione più semplice che ho trovato su un post reddit

Prima connettiti come coreutente e poi, assicurati che /opt/binesiste ( sudo mkdir -p /opt/bin) prima di eseguire il comando seguente:

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

Spero che /opt/binsia già nel PATHcosì non appena ha funzionato, avrai a nanodisposizione.


Questo è stato l'unico suggerimento che ha funzionato per il sistema piuttosto che solo all'interno di un contenitore docker. Altri suggerimenti suggeriscono di scaricarlo da googlecode.com che non lo ospita più.
— Alan,

Il comando sopra non funziona più con l'attuale archlinux / base. Ho provato a fare lo stesso estraendo il nano binario da un'altra distro, ma neanche questo funziona e non ci si dovrebbe aspettare che funzioni, poiché nano non è staticamente collegato.
— ChrisW,

3

CoreOS si basa su ChromeOS, quindi suppongo che le istruzioni per ChromeOS dovrebbero funzionare. Ad esempio, le istruzioni per l'installazione di Nano su Chrome sono:

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

Fonte: https://gist.github.com/alex-endfinger/1510908


1
Questo è un buon suggerimento, ma / user / bin è protetto da scrittura su CoreOS e nanonon funziona, anche da / tmp / nano
— Dan Esparza

Anche questo non funziona più, poiché il collegamento binario è morto.
— ChrisW,

1
Sei sicuro che sia basato su ChromeOS?
— Codice Bling

0

Mentre l'approccio toolbox è quello corretto per la maggior parte, stavo cercando un binario che avrei potuto eseguire in / opt / bin.

Questo link GitHub - andrew-d / static-binaries: vari strumenti * nix creati come binari collegati staticamente hanno un Dockerfile e uno script per compilare una versione binaria statica di nano su Debian che funzionerà su CoreOS.

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

Sarebbe meglio clonare il repository e compilare il binario.

Per utilizzare il binario precompilato dallo stesso repository:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.