CoreOSにNanoをインストールする方法はありますか?


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のポイントは、コンテナを起動する以外にOS自体で実際に何もしないということではありませんか?
ヨルダン

1
はい私はdockerfileまたは他の設定ファイルを作成および編集する必要がある可能性がある場合
codecowboy

2
coreosの使用目的は、ワークステーションでdockerファイルを編集し、フリートでcoreosにプッシュすることです。マシン自体に接続する必要はありません。
スパーダー

1
(Twitter経由)CoreOsチームが私を導いた。この文書にかかわらず、私はかどうかの、それは私が何をしたいかどうナノをインストールして使用することも可能であることを示唆しているべきである
codecowboy

1
知る限り、CoreOSでユニットファイル編集する必要があります(間違っていることを証明してください)。
ダンエスパルザ

回答:


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

ダンの答えは基本的に正しいですが、最新のCoreOSインストールではyumがもう機能していないようです(昨日の最新のcoreos_production_vmware_ova.ovaからインストールされています) http: Windows上のVMWareワークステーションに最新の)。

引用されたyumコマンドは最後に中断します。手順(3)をコマンドに置き換えます

/usr/bin/dnf install nano

これにより、fedoraコンテナにnanoが正常にインストールされます。

Danの投稿のマウントアドバイスに従いながら、このフェドラコンテナー内でnanoを編集します(CoreOSプロンプトから/ bin / toolboxからアクセス可能)。fedoraコンテナを終了するには、「exit」コマンドを使用します。


5

redditの投稿で見つけたよりシンプルなオプションがあります

最初に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では動作しません。別のディストリビューションからnanoバイナリを抽出して同じことを試みましたが、nanoは静的にリンクされていないため、これも機能せず、機能するはずもありません。
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からでも実行されません
ダンEsparza

バイナリリンクが停止しているため、これも機能しません。
ChrisW

1
ChromeOSに基づいていますか?
コードブリン

0

ツールボックスのアプローチはほとんどの人にとって正しいアプローチですが、/ opt / binで実行できるバイナリを探していました。

このリンクGitHub-andrew-d / static-binaries:静的リンクバイナリとして構築されたさまざまな* nixツールには、Dockerfileと、CoreOSで動作するDebianのnanoの静的バイナリバージョンをコンパイルするためのスクリプトがあります。

マスターのstatic-binaries / nano・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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.