Чи є спосіб встановити Nano на CoreOS?


30

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


3
Хіба не сенс CoreOS, що ви насправді нічого не робите в самій ОС, крім запуску контейнерів?
Йорданм

1
Так, але якщо мені може знадобитися створити та відредагувати dockerfile чи інший конфігураційний файл
codecowboy

2
Запропонований випадок використання Coreos полягає в тому, що ви редагуєте файл докера на своїй робочій станції та переходите до coreos з флотом. Не потрібно підключатися до самої машини.
спудер

1
Команда CoreOs (через twitter) привела мене до цієї документації, яка передбачає, що можна встановити та використовувати Nano, якщо це те, що я хочу зробити, незалежно від того, чи варто
codecowboy

1
AFAIK, вам все-таки потрібно редагувати файли одиниць на CoreOS (будь ласка, доведіть мене неправильно).
Dan Esparza

Відповіді:


56

Щоб зробити це у вікні CoreOS, дотримуючись підказок із посібника тут :

  1. Завантажте поле CoreOS і підключіться як coreкористувач
  2. Виконайте /bin/toolboxкоманду для введення контейнера Fedora Stock.
  3. Встановіть будь-яке необхідне вам програмне забезпечення. Установити nano в цьому випадку було б так само просто, як робити dnf -y install nano(dnf замінив yum)
  4. Використовуйте нано для редагування файлів. "Але чекай - я в контейнері!" Не хвилюйтесь - файлова система хоста монтується, /media/rootколи знаходиться всередині контейнера. Тому просто збережіть зразок текстового файлу в /media/root/home/core/test.txt, потім exitконтейнер і, нарешті, перейдіть до списку файлів /home/core. Помітили ваш файл test.txt?

Якщо будь-яка частина цього надто виразна або заплутана, будь ласка, задайте подальші запитання. :-)


7

Хоча відповідь Дана в основному правильна, здається, що yum більше не працює в останній установці CoreOS (встановленої вчора з останньої coreos_production_vmware_ova.ova від http://stable.release.core-os.net/amd64-usr/ поточний на робочій станції VMWare в Windows).

Цитована команда yum припиняє наприкінці. Тому замініть крок (3) на команду

/usr/bin/dnf install nano

який успішно встановлює нано в контейнер fedora.

Зробіть свої зміни нано у цьому контейнері Fedora (доступний із підказки CoreOS / bin / toolbox), дотримуючись рекомендацій щодо встановлення поста Дана. Залишити контейнер fedora можна за допомогою команди "exit".


5

Є більш простий варіант, який я знайшов у публікації про редагування

Спочатку підключіться як 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доступ.


Це була єдина пропозиція, яка працювала в системі, а не просто в докерному контейнері. Також інші поради пропонують завантажити його з googlecode.com, який більше не розміщує його.
Алан

Наведена вище команда більше не працює з поточним archlinux / base. Я спробував зробити те ж саме, витягнувши нано-бінарний файл з іншого дистрибутива, але це також не працює, і не слід очікувати, що він буде працювати, оскільки нано не є статично пов'язаним.
ChrisW

3

CoreOS базується на ChromeOS, тому, мабуть, інструкції для ChromeOS повинні працювати. Наприклад, інструкції щодо встановлення Nano в Chrome:

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

Джерело Гіст: https://gist.github.com/alex-endfinger/1510908


1
Це гарна пропозиція, але / користувач / бін захищено від запису на CoreOS і nanoне працює, навіть з / tmp / nano
Dan Esparza

Це також більше не працює, оскільки бінарне посилання мертве.
ChrisW

1
Ви впевнені, що він базується на ChromeOS?
Code Bling

0

Хоча підхід до інструментарію для більшості правильний, я шукав двійковий файл, який би міг запустити в / opt / bin.

Це посилання GitHub - andrew-d / static-binaries: Різні інструменти * nix, побудовані як статично пов'язані бінарні файли, мають Dockerfile та сценарій для складання статичної бінарної версії nano на Debian, яка працюватиме на CoreOS.

static-binaries / nano у 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.