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.