Czy jest jakiś sposób na zainstalowanie Nano na CoreOS?

30

CoreOS nie zawiera menedżera pakietów, ale moim preferowanym edytorem tekstu jest Nano, a nie vi lub vim. Czy jest na to jakiś sposób?

gcc nie jest dostępny, więc nie można go skompilować ze źródła:

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

Aby umieścić to w kontekście, postępowałem zgodnie z tym przewodnikiem, gdy okazało się, że chcę korzystać z Nano

codecowboy
źródło
3
Czyż nie chodzi o to, że CoreOS nie robi nic w samym systemie operacyjnym poza uruchamianiem kontenerów?
jordanm
1
Tak, ale jeśli będę musiał utworzyć i edytować plik dokera lub inny plik konfiguracyjny
codecowboy
2
Zamierzonym przypadkiem użycia dla Coreos jest edytowanie pliku dokera na stacji roboczej i wypychanie do Coreos z flotą. Nie ma potrzeby łączenia się z samym urządzeniem.
spuder
1
Zespół CoreOs (za pośrednictwem Twittera) poprowadził mnie do tej dokumentacji, która sugeruje, że można zainstalować i używać Nano, jeśli to właśnie chcę zrobić, niezależnie od tego, czy powinienem
codecowboy
1
AFAIK, nadal musisz edytować pliki jednostek na CoreOS (proszę udowodnij, że się mylę).
Dan Esparza

Odpowiedzi:

56

Aby to zrobić w pudełku CoreOS, postępuj zgodnie ze wskazówkami z przewodnika tutaj :

  1. Uruchom system CoreOS i połącz się jako coreużytkownik
  2. Uruchom /bin/toolboxpolecenie, aby wprowadzić zapasowy pojemnik Fedory.
  3. Zainstaluj potrzebne oprogramowanie. Aby zainstalować nano w tym przypadku, byłoby to tak proste, jak wykonanie dnf -y install nano(dnf zastąpił yum)
  4. Użyj nano do edycji plików. „Ale czekaj - jestem w pojemniku!” Nie martw się - system plików hosta jest zamontowany, /media/rootgdy znajduje się w kontenerze. Więc po prostu zapisz przykładowy plik tekstowy w /media/root/home/core/test.txt, następnie exitw pojemniku, i na koniec przejdź do listy plików /home/core. Zauważ swój plik test.txt?

Jeśli jakakolwiek część tego jest zbyt tajemnicza lub myląca, zadaj dalsze pytania. :-)

Dan Esparza
źródło
7

Chociaż odpowiedź Dana jest w zasadzie poprawna, wydaje się, że yum już nie działa w najnowszej instalacji CoreOS (zainstalowanej wczoraj z najnowszego coreos_production_vmware_ova.ova z http://stable.release.core-os.net/amd64-usr/ prąd do stacji roboczej VMWare w systemie Windows).

Przytoczone polecenie mniam przerywa się na końcu. Zastąp więc krok (3) poleceniem

/usr/bin/dnf install nano

który pomyślnie instaluje nano w kontenerze fedora.

Dokonuj edycji za pomocą nano w tym kontenerze fedora (dostępnym z wiersza CoreOS przez / bin / toolbox), jednocześnie przestrzegając wskazówek montażowych posta Dana. Opuszczenie kontenera fedora można wykonać za pomocą polecenia „exit”.

Heri
źródło
5

Istnieje prostsza opcja, którą znalazłem w poście reddit

Najpierw połącz się jako coreużytkownik, a następnie upewnij się, że /opt/binistnieje ( sudo mkdir -p /opt/bin) przed wykonaniem następującego polecenia:

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

Mam nadzieję, że /opt/binjest już dostępny, PATHwięc gdy tylko zadziała, będziesz miał nanodostępne.

rels
źródło
To była jedyna sugestia, która zadziałała dla systemu, a nie tylko w kontenerze dokera. Również inne wskazówki sugerowały pobranie go z googlecode.com, który już go nie obsługuje.
Alan,
Powyższe polecenie nie działa już z bieżącym archlinux / base. Próbowałem zrobić to samo, wyodrębniając nano binary z innej dystrybucji, ale to również nie działa i nie należy oczekiwać, że zadziała, ponieważ nano nie jest statycznie powiązane.
ChrisW
3

CoreOS jest oparty na ChromeOS, więc wydaje mi się, że instrukcje dla ChromeOS powinny działać. Na przykład instrukcje instalacji Nano w Chrome to:

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

Źródło Gist: https://gist.github.com/alex-endfinger/1510908

Shivams
źródło
1
To dobra sugestia, ale / user / bin jest chroniony przed zapisem na CoreOS i nanonie działa, nawet z / tmp / nano
Dan Esparza
To również nie działa, ponieważ łącze binarne jest martwe.
ChrisW
1
Czy na pewno jest oparty na systemie ChromeOS?
Code Bling
0

Podczas gdy podejście do zestawu narzędzi jest poprawne dla większości, szukałem pliku binarnego, który mógłbym uruchomić w / opt / bin.

Ten link GitHub - andrew-d / static-binaria: Różne narzędzia * nix zbudowane jako statycznie połączone pliki binarne mają plik Docker i skrypt do kompilacji statycznej binarnej wersji nano na Debianie, który będzie działał na CoreOS.

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

Najlepiej byłoby sklonować repozytorium i skompilować plik binarny.

Aby użyć wstępnie skompilowanego pliku binarnego z tego samego repozytorium:

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
źródło