2020-05-10
5/10
TerraformのKubernetes Providerを試してみる
※ブログに移した: TerraformのKubernetes ProviderでK8sのリソース管理にトライ - progrhyme’s tech blog
Ubuntuでもanyenvを使うことにした
Ubuntuで最近Ruby触ってなかったので、入っているRubyが古いことに気づいたのだけど、rbenvも git clone
して入れたものなので、古い。
plenv, pyenvも同様である。
4/28にmacOSでanyenvを試したのだけど、Ubuntuでも使ってみることにした。
https://github.com/anyenv/anyenv
自分環境のセットアップスクリプトに setup-rbenv.sh
とか入れてるけど、anyenvで管理した方が筋がよさそう。
anyenv install
Linuxbrewを入れてるので、brewでインストールできた。
% brew install anyenv
==> Downloading https://linuxbrew.bintray.com/bottles/anyenv-1.1.1.x86_64_linux.bottle.tar.gz
######################################################################## 100.0%
==> Pouring anyenv-1.1.1.x86_64_linux.bottle.tar.gz
🍺 /home/linuxbrew/.linuxbrew/Cellar/anyenv/1.1.1: 23 files, 48.4KB
% anyenv init
# Load anyenv automatically by adding
# the following to ~/.zshrc:
eval "$(anyenv init -)"
% eval "$(anyenv init -)"
ANYENV_DEFINITION_ROOT(/home/quiche/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by:
> anyenv install --init
% anyenv install --init
Manifest directory doesn't exist: /home/quiche/.config/anyenv/anyenv-install
Do you want to checkout ? [y/N]: y
Cloning https://github.com/anyenv/anyenv-install.git master to /home/quiche/.config/anyenv/anyenv-install...
Cloning into '/home/quiche/.config/anyenv/anyenv-install'...
remote: Enumerating objects: 48, done.
remote: Total 48 (delta 0), reused 0 (delta 0), pack-reused 48
Unpacking objects: 100% (48/48), done.
Completed!
ここまでやって exec $SHELL -l
してもまだPATHには変化なし。
どうも何かしら *env
をインストールしないといけないらしい。
anyenv install rbenv
してからシェルに再ログインすると、PATHに $HOME/.anyenv/envs/rbenv/shims
, $HOME/.anyenv/envs/rbenv/bin
が追加された。
rubyのインストールでややハマった
% rbenv install 2.7.1 -v
:
ruby: error while loading shared libraries: libruby.so.2.7: cannot open shared object file: No such file or directory
uncommon.mk:1130: recipe for target 'revision.tmp' failed
make: *** [revision.tmp] Error 127
BUILD FAILED (Ubuntu 18.04 using ruby-build 20200401-11-g12af1c3)
上のようなエラーで失敗した。
どうもこれはrdocの生成でコケているようだ。
ただ、ビルドログを見たら下のようなエラーも出ていた。
% view /tmp/ruby-build.20200510143333.6198.log
:
1660 *** Following extensions are not compiled:$
1661 dbm:$
1662 >-Could not be configured. It will not be installed.$
1663 >-Check ext/dbm/mkmf.log for more details.$
1664 gdbm:$
1665 >-Could not be configured. It will not be installed.$
1666 >-Check ext/gdbm/mkmf.log for more details.$
1667 *** Fix the problems, then remove these directories and try again if you want.$
:
よくわからないままビルドに必要そうなパッケージをインストールしてリトライした。
sudo apt install build-essential bison libffi-dev libgdbm-dev libgdbm-compat-dev \
libreadline-dev libssl-dev zlib1g-dev
参考: Rubyをソースからコンパイルするときの依存ライブラリ - Qiita
上で、いくつかのパッケージは既にインストールされていた。
リトライした結果、結局、さっきと同じrubyのエラーで失敗した。
ビルドログから、dbm関連のエラーは消えていたので、そこは解消したらしい。
闇雲に別のまっさらなシェルを立ち上げて再度インストールを試みたところ、成功した。
まだ ~/.rbenv
に古いrbenvが入っていて、 ruby
が ~/.rbenv/shims/ruby
を向いていたので、その辺が悪さをしていたのかもしれない。
これで駄目だったらrdocの生成をオフしようかと思っていた。
参考:
clenvでTravis CIのビルド通知とバッジを修正した
https://github.com/progrhyme/clenv
昔、リポジトリを key-amb -> progrhyme に移したのだけど、そのせいでバッジとSlack通知がおかしくなっていた。
Slackのインテグレーション自体は生きていたので、 travis
コマンドで設定をし直した。
gem i travis
travis encrypt "<Slack Workspace>:<Slack Integration Token>" --add notifications.slack.rooms
これで .travis.yml が更新されたので、GitHubにpushして完了。
バッジも新しいURLで取得した。
参考:
次世代のシェルとは
4年前にもブクマしてたやつ。
これC言語製だったか。
今さっきググったらGolang製のフォーマッタ/パーサ/インタープリタを見つけた。
なんか、そのうち全部JavaScriptになるんじゃないかな、って気もするんだよなぁ。
macOSはJavaScriptでOSと対話できるようになったし、GNOME ShellもJavaScriptで拡張できるらしいし。
まあ、よくできたプログラム言語がごろごろある現状、敢えて0から再実装する必要ないよねってことか。
そんなわけでclenvを再開するモチベーションが湧かない今日この頃。
Node.jsが筆頭だけど、JavaScriptで実装されたシェルも色々あるみたい。
※ただ、OSのシェルとはどれもちょっと違うかも。
POSIXはもう気にしなくてもいいだろうと思うものの、どの環境でもスッと動いてほしいとは思う。
そういえばfishってどうだっけと思って、改めてチラ見してシェルにメモした。
これはC++製なんですね。
参考:
- 知らないうちにMacがシステム標準でJavaScriptで操作できるようになってた (JXA) - Qiita
- 第492回 GNOME Shellの拡張機能を作ってみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- JavaScript シェル - JavaScript リダイレクト 1 | MDN
Ubuntuでfishを少しだけ試してみた
Install:
https://launchpad.net/~fish-shell/+archive/ubuntu/release-3 の通り:
sudo apt-add-repository ppa:fish-shell/release-3
sudo apt-get update
sudo apt-get install fish
fish
で起動する。
体感そんな悪くない。
bashで書いたスクリプトはシバン書いてるから実行したら普通に動くし、特に戸惑うことはない感じ。
少しカスタマイズしたら十分使いやすくなりそう。
fisherを試す
テーマを使ってみたかったので、fisherを入れてテーマを入れてみる。
https://github.com/jorgebucaran/fisher
READMEに従ってインストール
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
色々ハマったんだけど、最終的に次の要領で、まあまあいい感じになった:
powerlineのインストール
sudo apt install powerline
参考:
※↑に書かれている ~/.config/fish/config.fish
の設定をすると、fishでpowerlineは使えるが、他のテーマを入れるとおかしくなる。(カニバってしまう?)
powerlineを使うには対応したフォントが必要らしい。これに中々気づかなかった。
https://github.com/microsoft/cascadia-code/releases から、最新版を ~/.fonts
にインストールした。
参考: フォントのインストール | Ubuntu初心者の集いブログ
テーマの追加
この後、fishを起動し、 fisher add oh-my-fish/theme-bobthefish
で、まあまあいい感じになった。
ただ、プロンプトの左端が I
となっていて、これはスクリーンショットによると本来は矢印記号が出るはずなんじゃないかと思う。
theme-bobthefish のガイドに従って、 https://github.com/ryanoasis/nerd-fonts/releases も入れてみたけど、特に変わらない。
上手く行かなかったこと
上まで辿りついたが、 theme-budspencer
だと上手く行かなかった。
プロンプトでENTERだけを押しても改行されない感じになってしまう。
参考
GASでWebアプリ作るテスト
Google Apps ScriptでWebアプリケーションをつくる - Qiitaを写経。 ステップ5の「データをGoogleスプレッドシートに保存」はまだできていない。
JS, CSSを分割したところから上手く行かなくなった。 原因は以下の2つ:
- Qiita上ではJS, CSSのコードが省略されている。GitHubの完全版からコピる必要があった。
- コード.gsの
doGet()
関数を下に従って変更する必要があった: