久しぶりのrbenv(DockerのUbuntuな環境で) [Linux]
DockerのUbuntuなコンテナでRubyを入れようと思い、rbenvとruby-buildを入れてみたけど動かない。
何だろうと思って
とかして見ても無駄。
rbenv installしたんだけどダウンロードしかされない。
実はディレクトリを見てもダウンロードさえされてなかった。
何が悪いってwgetすら入ってなかったんですよ。
コンテナって初期状態は何も入ってないから気を付けよう。
あ~長いコンパイルの旅に出られてしまったサーバ様。
失敗した~w
ログのエラーの最後に下記のような表示が出た。
その通りにやってみた。
ん~前にやったようにUbuntuのリポジトリだと古いRubyしか入ってなさそうだしなぁ。
ゔ…まだバージョン1.9台だよ。使えねーよw。
で再度やったら、長い時間をかけてコンパイルできました。
ただ単にリンクの時にこけてただけみたい。
やっぱりコンテナのミニマムなOSの状態からやるの厳しいな…。
これでもDockerの初期状態からかなり入れた後なんだけどな。
本当はDockerFileとかを使って構築すべきなのかもしれないけど、正直行き当たりばったりで環境構築するから、コンテナをイメージに戻してそれをコンテナとして再利用ってのが一番簡単な気がしている。例えばRubyの入れた環境をイメージにして、開発の基礎として使う、みたいな。というか、それを今やろうとしている。
とりあえずRubyが入ればそこまでの処理はイメージからでっち上げればいいので、簡単な基礎的な環境を作るのにも楽ができる。基礎的と言ってもRubyをコンパイルしたり色々しているので、時間的な短縮は絶大といえるだろう。そんなわけでRubyが使える環境が整った。というか、ディストリビューションのリポジトリが使えればそれが依存性などを考えると一番いいのだけれど、最近新しい環境を使う事が一般的になってきているので、APT以外の方法を取らないといけなくなってはいます。
だからC言語の使われ方っていうのは汎用的で一般的なんだなとLinuxでは思います。まぁUNIXを作るために作られた言語らしいし、枯れてはいるが人の書いたものが読みにくい言語なので、もう必ずしもC言語で作るという前提は少なくなってきているのだろうね。コアな部分はずっと残っていくのだろうけど、メンテがしにくいという点はずっと変わってないので、インタプリタでLLな言語でも、ネイティブなコードを吐くGolangとかでも何でもいいとは思うけどね。ただ自分が使っていない言語が多くなると厳しいものがあるけれども。
何だろうと思って
sudo aptitude install gcc make
とかして見ても無駄。
rbenv installしたんだけどダウンロードしかされない。
実はディレクトリを見てもダウンロードさえされてなかった。
何が悪いってwgetすら入ってなかったんですよ。
コンテナって初期状態は何も入ってないから気を付けよう。
sudo aptitude install wget
rbenv install 2.1.8
あ~長いコンパイルの旅に出られてしまったサーバ様。
失敗した~w
ログのエラーの最後に下記のような表示が出た。
apt-get install -y libssl-dev libreadline-dev zlib1g-dev
その通りにやってみた。
ん~前にやったようにUbuntuのリポジトリだと古いRubyしか入ってなさそうだしなぁ。
ゔ…まだバージョン1.9台だよ。使えねーよw。
rbenv install 2.1.8
で再度やったら、長い時間をかけてコンパイルできました。
ただ単にリンクの時にこけてただけみたい。
やっぱりコンテナのミニマムなOSの状態からやるの厳しいな…。
これでもDockerの初期状態からかなり入れた後なんだけどな。
本当はDockerFileとかを使って構築すべきなのかもしれないけど、正直行き当たりばったりで環境構築するから、コンテナをイメージに戻してそれをコンテナとして再利用ってのが一番簡単な気がしている。例えばRubyの入れた環境をイメージにして、開発の基礎として使う、みたいな。というか、それを今やろうとしている。
とりあえずRubyが入ればそこまでの処理はイメージからでっち上げればいいので、簡単な基礎的な環境を作るのにも楽ができる。基礎的と言ってもRubyをコンパイルしたり色々しているので、時間的な短縮は絶大といえるだろう。そんなわけでRubyが使える環境が整った。というか、ディストリビューションのリポジトリが使えればそれが依存性などを考えると一番いいのだけれど、最近新しい環境を使う事が一般的になってきているので、APT以外の方法を取らないといけなくなってはいます。
だからC言語の使われ方っていうのは汎用的で一般的なんだなとLinuxでは思います。まぁUNIXを作るために作られた言語らしいし、枯れてはいるが人の書いたものが読みにくい言語なので、もう必ずしもC言語で作るという前提は少なくなってきているのだろうね。コアな部分はずっと残っていくのだろうけど、メンテがしにくいという点はずっと変わってないので、インタプリタでLLな言語でも、ネイティブなコードを吐くGolangとかでも何でもいいとは思うけどね。ただ自分が使っていない言語が多くなると厳しいものがあるけれども。
コメント 0