CoreOS에 Nano를 설치하는 방법이 있습니까?


30

CoreOS에는 패키지 관리자가 포함되어 있지 않지만 선호하는 텍스트 편집기는 vi 또는 vim이 아닌 Nano입니다. 이 주위에 어떤 방법이 있습니까?

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
시작 컨테이너 이외의 OS 자체에서 실제로 아무것도하지 않는 CoreOS의 요점이 아닙니까?
jordanm

1
예. dockerfile 또는 기타 구성 파일을 작성 및 편집해야 할 경우
codecowboy

2
coreos의 의도 된 사용 사례는 워크 스테이션에서 docker 파일을 편집하고 집합이있는 coreos로 푸시하는 것입니다. 기계 자체에 연결할 필요가 없습니다.
spuder

1
(트위터를 통해) CoreOs 팀은 저를 이끌어 이 문서 그 여부에 관계없이 나는의, 내가하고 싶은 거라면 설치 및 나노를 사용할 수 있습니다 제안 해야
codecowboy

1
AFAIK, CoreOS에서 여전히 유닛 파일편집 해야합니다 (나를 잘못 증명하십시오).
Dan Esparza

답변:


56

CoreOS 상자 에서이 작업을 수행하려면 가이드 의 힌트를 따르 십시오 .

  1. CoreOS 상자를 부팅하고 core사용자 로 연결
  2. /bin/toolbox명령을 실행하여 스톡 Fedora 컨테이너를 입력하십시오.
  3. 필요한 소프트웨어를 설치하십시오. 이 경우 nano를 설치하려면 dnf -y install nano(dnf가 yum을 대체했습니다) 하는 것처럼 간단합니다.
  4. nano를 사용하여 파일을 편집하십시오. "하지만 잠깐만 요-컨테이너 안에 있어요!" 걱정하지 마십시오- /media/root컨테이너 내부에 호스트의 파일 시스템이 마운트됩니다 . 따라서 샘플 텍스트 파일을에 저장 한 /media/root/home/core/test.txt다음 exit컨테이너에 저장하고 마지막으로에 파일을 나열하십시오 /home/core. test.txt 파일을 확인 하시겠습니까?

이 중 일부가 너무 비밀 스럽거나 혼란 스럽다면 후속 질문을하십시오. :-)


7

Dan의 대답은 기본적으로 정확하지만 최신 CoreOS 설치 (예 : http://stable.release.core-os.net/amd64-usr/ 의 최신 coreos_production_vmware_ova.ova에서 설치됨)에서 yum이 더 이상 작동하지 않는 것 같습니다 . 현재 Windows의 VMWare 워크 스테이션에 연결).

인용 된 yum 명령이 마지막에 중단됩니다. 따라서 단계 (3)을 다음 명령으로 바꾸십시오.

/usr/bin/dnf install nano

페도라 컨테이너에 나노를 성공적으로 설치합니다.

Dan의 게시물에 대한 마운트 조언을 준수 하면서이 fedora 컨테이너 내부에서 nano를 사용하여 편집하십시오 (Corebin 프롬프트에서 / bin / toolbox로 액세스 가능). '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에서 다운로드하는 것이 좋습니다.
Alan

위의 명령은 현재 archlinux / base에서 더 이상 작동하지 않습니다. 다른 배포판에서 나노 바이너리를 추출하여 동일한 작업을 시도했지만 나노가 정적으로 연결되어 있지 않으므로 작동하지 않으며 작동하지 않아야합니다.
ChrisW

3

CoreOS는 ChromeOS를 기반으로하므로 ChromeOS에 대한 지침이 작동한다고 생각합니다. 예를 들어 Chrome에 Nano를 설치하기위한 지침은 다음과 같습니다.

#!/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
이것은 좋은 제안이지만 / user / bin은 CoreOS에서 쓰기 금지되어 nano있으며 / tmp / nano에서도 실행되지 않습니다.
Dan Esparza

이진 링크가 작동하지 않기 때문에 더 이상 작동하지 않습니다.
ChrisW

1
ChromeOS를 기반으로합니까?
코드 블링

0

툴박스 접근 방식이 가장 올바른 방법이지만, / opt / bin에서 실행할 수있는 바이너리를 찾고있었습니다.

GitHub-andrew-d / static-binaries 링크 : 정적으로 링크 된 바이너리로 빌드 된 다양한 * nix 도구 에는 Dockerfile과 CoreOS에서 작동하는 Debian에서 nano의 정적 바이너리 버전을 컴파일하기위한 스크립트가 있습니다.

마스터의 정적 바이너리 / 나노 · andrew-d / static 바이너리 · 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.