Existe alguma maneira de instalar o Nano no CoreOS?


30

O CoreOS não inclui um gerenciador de pacotes, mas meu editor de texto preferido é o Nano, não o vi ou o vim. Existe alguma maneira de contornar isso?

gcc não está disponível, portanto não é possível compilar a partir da fonte:

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 colocar isso em contexto, eu estava seguindo este guia quando descobri que queria usar o Nano


3
Não é o ponto do CoreOS que você realmente não faz nada no próprio sistema operacional além de iniciar contêineres?
Jordanm 15/05

11
Sim, mas se eu poderia precisar para criar e editar um dockerfile ou outro arquivo de configuração
codecowboy

2
O caso de uso pretendido para o coreos é que você edita o arquivo docker na estação de trabalho e envia para o coreos com frota. Não é necessário conectar-se à própria máquina.
Spuder

11
A equipe CoreOs (via twitter) me levou a esta documentação que sugere que é possível instalar e usar o Nano se é isso que eu quero fazer, independentemente de eu deveria
codecowboy

11
AFAIK, você ainda precisa editar os arquivos da unidade no CoreOS (por favor, prove que estou errado).
Dan Esparza

Respostas:


56

Para fazer isso em uma caixa CoreOS, siga as dicas do guia aqui :

  1. Inicialize a caixa do CoreOS e conecte-se como coreusuário
  2. Execute o /bin/toolboxcomando para entrar no contêiner do Fedora.
  3. Instale qualquer software que você precisa. Para instalar o nano nesse caso, seria tão simples quanto fazer um dnf -y install nano(o dnf substituiu o yum)
  4. Use o nano para editar arquivos. "Mas espere - eu estou em um recipiente!" Não se preocupe - o sistema de arquivos do host está montado /media/rootquando está dentro do contêiner. Então, basta salvar um arquivo de texto de exemplo em /media/root/home/core/test.txt, depois exitno contêiner e, finalmente, listar os arquivos /home/core. Observe o seu arquivo test.txt?

Se alguma parte disso for muito enigmática ou confusa, faça as perguntas a seguir. :-)


7

Embora a resposta de Dan esteja basicamente correta, parece que o yum não está mais funcionando na instalação mais recente do CoreOS (instalada ontem a partir da última coreos_production_vmware_ova.ova em http://stable.release.core-os.net/amd64-usr/ atual em uma estação de trabalho VMWare no Windows).

O comando yum citado é interrompido no final. Então substitua a etapa (3) pelo comando

/usr/bin/dnf install nano

que instala com sucesso o nano no contêiner do fedora.

Faça suas edições com o nano dentro deste contêiner do fedora (acessível a partir do prompt do CoreOS por / bin / toolbox), obedecendo ao conselho de montagem da publicação de Dan. Sair do contêiner do fedora pode ser feito pelo comando 'exit'.


5

Existe uma opção mais simples que encontrei em um post do reddit

Primeiro, conecte-se como coreusuário e, em seguida, verifique se /opt/binexiste ( sudo mkdir -p /opt/bin) antes de executar o seguinte comando:

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

Esperemos que /opt/binjá esteja no PATHmodo assim que funcionou, você terá nanodisponível.


Essa foi a única sugestão que funcionou para o sistema, e não apenas dentro de um contêiner de docker. Outras dicas também sugeriram o download no googlecode.com, que não o hospeda mais.
Alan

O comando acima não funciona mais com o archlinux / base atual. Tentei fazer o mesmo extraindo o nano binário de outra distribuição, mas isso também não funciona e não deve funcionar, pois o nano não está estaticamente vinculado.
ChrisW

3

O CoreOS é baseado no ChromeOS, então acho que as instruções para o ChromeOS devem funcionar. Como exemplo, as instruções para instalar o Nano no Chrome são:

#!/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 Gist: https://gist.github.com/alex-endfinger/1510908


11
Esta é uma boa sugestão, mas / user / bin está protegido contra gravação em CoreOS, e nanonão executar, mesmo a partir de / tmp / nano
Dan Esparza

Isso também não funciona mais, pois o link binário está morto.
ChrisW

11
Tem certeza de que é baseado no ChromeOS?
Code Bling

0

Enquanto a abordagem da caixa de ferramentas é a correta para a maioria, eu estava procurando por um binário que pudesse ser executado em / opt / bin.

Este link GitHub - andrew-d / estático-binários: Várias ferramentas * nix construídas como binários vinculados estaticamente têm um Dockerfile e um script para compilar uma versão binária estática do nano no Debian que funcionará no CoreOS.

binários estáticos / nano no master · andrew-d / binários estáticos · GitHub

Seria melhor clonar o repositório e compilar o binário.

Para usar o binário pré-compilado do mesmo repositório:

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.