HIDARI日記(右)

そのときどき興味ある技術を中心にだらだら書いてます。内容は個人の見解であり、所属する企業を代表するものではありません。

pyenv installが失敗する件(BUILD FAILED)

長年使ってきたMacにpyenvをインストールして pyenv install したとき以下のエラーが発生した。

pyenv install 3.6.4
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.4.tar.xz...
-> https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
Installing Python-3.6.4...
python-build: use readline from homebrew

BUILD FAILED (OS X 10.13.3 using python-build 20160602)

Inspect or clean up the working tree at /var/folders/bb/0gd8kc6s00q4fr47bvxst2r00000gn/T/python-build.20180317171610.14320
Results logged to /var/folders/bb/0gd8kc6s00q4fr47bvxst2r00000gn/T/python-build.20180317171610.14320.log

Last 10 log lines:
  File "/private/var/folders/bb/0gd8kc6s00q4fr47bvxst2r00000gn/T/python-build.20180317171610.14320/Python-3.6.4/Lib/ensurepip/__main__.py", line 5, in <module>
    sys.exit(ensurepip._main())
  File "/private/var/folders/bb/0gd8kc6s00q4fr47bvxst2r00000gn/T/python-build.20180317171610.14320/Python-3.6.4/Lib/ensurepip/__init__.py", line 204, in _main
    default_pip=args.default_pip,
  File "/private/var/folders/bb/0gd8kc6s00q4fr47bvxst2r00000gn/T/python-build.20180317171610.14320/Python-3.6.4/Lib/ensurepip/__init__.py", line 117, in _bootstrap
    return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
  File "/private/var/folders/bb/0gd8kc6s00q4fr47bvxst2r00000gn/T/python-build.20180317171610.14320/Python-3.6.4/Lib/ensurepip/__init__.py", line 27, in _run_pip
    import pip
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1

原因はxcode command line toolsがインストールされていなかったため。

xcode-select --install

でインストールしてやれば解決する。

このあいだOSをHigh SierraにしてXCodeを新しくしたので、そのタイミングで消えてたらしい。

使い古したMacで新しく何かしようとすると、色んな所に落とし穴がありますね。

nodebrew installが失敗する件

長年使ってるMacにnodebrewをインストールした際、初回の nodebrew install で以下のエラーが発生した。

nodebrew install-binary stable
Fetching: https://nodejs.org/dist/v8.10.0/node-v8.10.0-darwin-x64.tar.gz
Warning: Failed to create the file 
Warning: /Path/to/.nodebrew/src/v8.10.0/node-v8.10.0-darwin-x64.tar.gz: 
Warning: No such file or directory
                                                                           0.0%
curl: (23) Failed writing body (0 != 1017)
download failed: https://nodejs.org/dist/v8.10.0/node-v8.10.0-darwin-x64.tar.gz

/Path/to/.nodebrew/src/ にファイルをダウンロードできないため、インストールに失敗している。

そんなときは nodebrew setup を実行する。

nodebrew setup
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew

========================================
Export a path to nodebrew:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================

そして再度インストールを実行。

nodebrew install-binary stable
Fetching: https://nodejs.org/dist/v8.10.0/node-v8.10.0-darwin-x64.tar.gz
######################################################################## 100.0%
Installed successfully

これで問題なくインストールできるようになりました。

brew install時にディレクトリの権限周りの問題でハマった

Macの環境構築で homebrew と zsh と nodebrew と pyenv を導入した手順 - HIDARI日記(右)

の手順で、長年使ってるMacにhomebrewでzshをインストールしようとして以下のエラーが発生した。

Error: Could not create /usr/local/Cellar
Check you have permission to write to /usr/local

/usr/local に書き込み権限がないため、 Cellarディレクトリが作れないと言っている。

なので手作業でディレクトリを作ってから再度インストールを試みる。

sudo mkdir /usr/local/Cellar
brew install zsh

すると今度は以下のエラーが…

Error: /usr/local/Cellar is not writable. You should change the
ownership and permissions of /usr/local/Cellar back to your
user account:
  sudo chown -R $(whoami) /usr/local/Cellar
Error: Cannot write to /usr/local/Cellar

指示に従ってコマンドを実行し、三度インストールを実行する。

sudo chown -R $(whoami) /usr/local/Cellar
brew install zsh

次は以下のエラーが発生した。

Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink .
/usr/local/opt is not writable.

You can try again using:
  brew link zsh

/usr/local/opt に書き込めるようにすればいい様子。なので先程と同じ要領で chown を実行する。

sudo chown -R `whoami`:admin /usr/local/opt
chown: /usr/local/opt: No such file or directory

そもそも /usr/local/opt がないらしい。作って再度実行する。

sudo mkdir /usr/local/opt
sudo chown -R `whoami`:admin /usr/local/opt
brew link zsh
Error: Could not symlink lib/zsh
/usr/local/lib is not writable.

今度は /usr/local/lib がダメらしい。調べてみるとこれもそもそもディレクトリが存在しないようなので作って

sudo mkdir /usr/local/lib
brew link zsh
Linking /usr/local/Cellar/zsh/5.4.2_3... 
Error: Could not symlink lib/zsh
/usr/local/lib is not writable.

まだダメ。ちょっと調べてみて Homebrew: Could not symlink, /usr/local/bin is not writable - Stack Overflow を参考にして以下を実行

sudo chown -R `whoami`:admin /usr/local/bin
brew link zsh
Linking /usr/local/Cellar/zsh/5.4.2_3... 1351 symlinks created

上手くいったっぽい。

行き当たりばったりで雑に動くようにしたけど、これでよかったのか自信はない。

Macの環境構築で homebrew と zsh と nodebrew と pyenv を導入した手順

めちゃくちゃ久しぶりにMacの環境作った。

具体的にはhomebrew入れて、zsh入れて

ネットを検索してると何年も前の情報が結構多くて、これまだ使える情報か?って不安があるので、ひとまず2018年3月時点ではこの方法でインストールできましたというのを記録しておきます。

homebrewのインストール

zshのインストール

参考:とりあえずZshを使えば良いんだろう? - Qiita

homebrewでnodebrewのインストール

nodebrewでnode.jsのインストール

  • nodebrew ls-remote でインストールできるバージョンを確認
  • nodebrew install-binary x.x.x で指定してインストール(lateststable でも可)
  • nodebrew use x.x.x で使用可能にする
  • npmはnodeと一緒にインストールされる模様

homebrewでpyenvを使ってpython3のインストール

  • HomebrewのインストールからpyenvでPythonのAnaconda環境構築までメモ - Qiita を参考に
  • brew install pyenv でインストール
  • .zshrcに次の3つを追記
    • export PYENV_ROOT="$HOME/.pyenv"
    • path配列に {PYENV_ROOT}/bin(N-/)
    • 最後の方に eval "$(pyenv init -)"
  • source ~/.zshrc で再読み込み
  • pyenv install -l でインストール可能バージョン一覧を表示
  • pyenv install x.x.x でインストール
  • pyrnv versions でインストールされたバージョンを確認
  • pyenv global x.x.x で使用するバージョンを指定
  • 最後に python --versionPythonが切り替わっているかを確認

ところで

zshってなんて発音するのですかね?

勝手に心のなかで「ゼッシュ」って呼んでる。ほんとの発音知ってる人いたら教えてください。


2018/03/07 追記

Twitterで「ズィーシェル」と呼ぶのが一般的だという情報を頂きました。

お久しぶりですが7年間勤めた会社を退職しました

2月28日を持って約7年間勤めた会社を退職しました。

新卒で入社して以来7年間、親会社に吸収され続けて気づけばいわゆる日本の大企業の一員としてやってきました。

まずはお世話になった方々にお礼を言いたいと思います。

何をやってきたか

入社後一年間は受託開発の仕事で、とある国産ERPパッケージを使ったSI案件に携わっていました。

そこではいわゆるウォーターフォール型の開発、Excelスクショエビデンス、手作業による単体テストを体験しました。

しかし、ここでの体験がなかったら、今のように自分で勉強して現場を改善したいと思うことはなかったと思うし、多くの友人にも出会えなかったと思います。そう考えるととても大きなターニングポイントでした。

その後、メインフレームの端末エミュレータを開発する部署に異動しました。

そこではVC++6.0を中心にVBScriptなどいわゆるレガシーな技術を使って開発をしていて、求められる知識もかなり高度なものでした。過去から連綿と受け継がれてきた資産がほとんどで、それに縛られて開発自体にあまりスピード感はありませんでした。

ただ、現場はもっと楽になりたいと考えていて、Jenkinsを使ったCIの仕組みを作らせて貰えたり、Seleniumを使った自動テストなどの導入には積極的でした(最終的に導入は見送りましたが)。自分で勉強しただけの技術を実務で使わせて貰えるなんて、なんて懐の広い人たちなんだと感動したのを覚えています。

最近はスポットでStrutsからSpring Frameworkへの移行案件を手伝ったり、過去に納めたシステムの障害調査、対応をしたりしていました。

なぜやめるのか

理由はいくつかあります。

長い間携わってきたメインフレーム用端末エミュレータというニッチな市場に対する先行きの不安感。

このまま今の技術スタックで年齢を重ねたとき、何かのはずみで事業そのものがなくなってしまったら、気付いたときには他に身を振る先がなくなってしまうのではないかという不安。

昇進するにもすでにポストは埋まっていて現在のキャリアパスではこれ以上はあまり給与が上がらないこと。

そしてこれが一番大きいことなのですが、今まで経験したことのない環境に身をおいて、スキルを高めたいと思ったことです。

これからどうするのか

新しい職場はすでに決まっています。 同じIT系ですが、これまでとは全く違う技術スタックが求められる職場です。これについては落ち着いたら改めて書きたいと思います。

転職に際してはとても多くの方にアドバイスを頂きました。 本当に有難うございました。

Jenkins勉強会で学んだビアバッシュ

後から来る人達へ。

第7回大阪Jenkins勉強会の懇親会の代わりに行ったビアバッシュについて、次回開催するときのためにメモがてら書いておこうと思います。

人数と用意したもの

今回のビアバッシュには最終的に36人の方に参加頂きました。

ビール:

  • 2ケース(48本)
  • 一人2本弱の計算。
  • 注文時の申し込み人数の2倍弱で注文。
  • カクヤスで前日に注文。 www.kakuyasu.co.jp
  • オプションで冷えたものを配達してもらえる。
  • ビアバッシュ開始予定時刻直前に届いたけど、本編が早めに終わってたので、結果的に遅すぎた。
  • 2時間前目標で届けてもらうのが良さそう。

ピザ:

  • 12枚
  • 1枚で3人分の計算。
  • ドミノ・ピザの週末限定半額クーポンを(@kiy0takaさん](https://twitter.com/kiy0taka)が)当日手に入れて注文。
  • こちらもスケジュール通りに注文したけど結果的には遅すぎた。
  • 早めに注文しよう。

ソフトドリンク:

  • ペットボトル数本

雑感

  • ピザは気持ち少なかったけど必要量には足りていた。
  • ビールは微妙に少なくて、途中で買い足し。
  • 余るリスクを考えると少なくてよかったのかも。
  • 今回のをベースに参加者を考慮しがら色々手配するのがいいのではないかな。

第7回大阪Jenkins勉強会を開催してきました #jenkinsstudy

だいぶ時間が経ってしまいましたが、去る2016年6月18日に、約2年半振りとなる大阪Jenkins勉強会の第7回を開催してきました。

connpass.com

connpass.com

今回はJenskins2のリリース記念ということでJenkins生みの親である川口さんと、現在開発中のJenkinsの新しいUI「Blue Ocean」の開発者であるJames Dumayさんをお迎えしました。

セッション

前半は実践系のセッション、後半はJenkins2を深く広い視点から解説するセッションという構成でした。

大畔 祐輝さん「初めての自動化、Jenkins」

  • Jenkins2の導入時に躓きそうなところを実体験をもとにまとめて話して下さいました。
  • 初めての発表とのことでしたが、丁寧な調査と落ち着いたしゃべりで素晴らしい発表でした。

@nobuokaさん「Jenkins Pipelines と Android アプリ開発 」

  • @nobuoka
  • Android開発でのJenkins活用事例を紹介して頂きました。
  • Pipelineのハマりどころ、使ってはじめて分かる超絶便利部分など、なかなか聞くことの出来ない贅沢な内容でした。

@kazuhito_mさん「実録!となりのJenkins2.0」

  • 安定の@kazuhito_m
  • 会場を巻き込むしゃべりは流石でした。ちょっとやかましかったけど。
  • デモ動画を流しながら解説するスタイルは非常に分かりやすかったです。ちょっとやかましかったけど。
  • やってることもトリッキーなのによく考えられてて聴き応えのあるセッションでした。ちょっとやかましかったけど。
  • ちょっとやかましかったけど。でもそれがいいw

川口耕介さん「Jenkins 2.0の紹介」

  • @kohsukekawa
  • Jenkinsの背景にある考え方、ビジョン、そしてJenkins2以降どうやって発展させて行くか、という内容を丁寧にお話して頂けました。
  • Jenkins2のLTSも近くリリースされるそうなので、2.0への以降も進むと思います。
  • 今後の発展がますます楽しみで、僕も少しでも貢献出来ればいいなって思います。

James Dumayさん「Blue Ocean 〜A new user experience for Jenkins〜」

  • @i386
  • 現在開発が進んでいるJenkinsの新しいUI「Blue Ocean」についてどこよりも早い解説セッションでした。
  • 開発車のJamesさんが英語で解説し、川口さんが逐次翻訳するスタイルでの発表でした。Jamesさんが日本語で挨拶したのを川口さんが英訳する場面もあり笑いを誘っていました。
  • まだ開発中のBlue Oceanですが、実際に触ってみることも出来るので、気になる方は Blue Ocean を見てみてください。
  • ちなみに、当日接続端子の都合で僕のPCを使って貰ったため、手元にはJamesさんのスライドがあったりします(役得)。
  • さっそく試した方も。

@Posauneさん「Travis, Circle, そしてJenkins 2.0」

  • こちらも安定の@Posaune
  • CIサーバとしてJenkinsが世界に与えた影響や問題点、昨今流行りのCIサービスについて、さらにそれらと比較したJenkinsの立ち位置などについて、独自の世界観と深い考察をお話くださいました。
  • Jenkinsの属人化問題は僕も頭を悩ませる問題で、Pipeline Scriptによるコード化が有効な手段になりうるかもと期待しています。

LT

  • 僕「Jenkins2.0で雑にLTタイマー作ります」
  • Vagrantを使った自動化デモ。
  • ArduinoでXFDデモ。
  • Jenkinsで彼女作ったら温もりが足りなかったり。
  • @kiy0takaさんのBlueOceanハックLTにテンション上がりまくりのJamesさん。
  • いろふさんはとんでもない速度でコミットフックでビルドするところまでジョブ作ってた。
  • 制限時間なんてなかった。

とにかくハイレベルで自由なLTでした(僕除く←)。

そのほか個人の感想など

  • 久しぶりに大阪でJenkins勉強会を開催することができました。
  • 初めてのJenkinsあり、Android開発での利用事例あり、企業内での縛りプレイ的な状況でのJenkins利用例ありでバラエティに富んだ内容を実現することができました。
  • 今回の勉強会で得られたこと、学んだことを現場でも実践して頂ければ、それ以上嬉しいことはありません。
  • あわよくば、次回の勉強会でその実践事例を発表してもらいたいです。
  • いつの間にか主催側になって、あれよあれよというまに川口さんとJamesさんに来てもらえる事になって、最終的には大盛況で終えることができました。遅くなりましたが本当にありがとうございました!

ブログ記事

勉強会の感想も書いてくださっています。