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.