Tag Archives: OSX

[メモ] MacにPythonのmatplotlibをインストール

Pocket

matplotlibには、gfortran、freetypeが必要で、こちらはbrewでインストールする。
あとはpipでnumpy, scipyをインストールし、やっとmatplotlibをインストールできる。

gfortran, freetypeのインストール

gfortran。

freetype。libpngも入る。

numpy, scipyのインストール

numpy, scipyのテスト
以下のようなスクリプトを実行

実行結果

matplotlibのインストール

やっとmatplotlib

おしまい。

[メモ] MacにhomebrewでPythonをインストール(virtualenvまで)

Pocket

brewでpythonをインストールする
10.9.3にはPython 2.7.5が入っている。
brewでこれを新しいものに。
またvirtualenvも入れてしまう。

brewでインストール

すっ飛ばした途中にいろいろと重要なことが表示されている。
すなわち、Pythonのインストールに必要なソフトウェアはOS Xにもあるけど、いろいろと問題もあるから新しいの入れとくわなどなど。
また、pipとsetuptoolsもインストールされている。

いずれにせよpythonのインストールはできた。
ターミナルで調べてみると2.7.6に変化していますね。

そのままvirtualenvなどのツールをインストール。

virtualenvのインストール

pipでインストールするだけ。

[メモ] MacのパッケージマネージャHomebrewのインストール

Pocket

Homebrewとは、Macのパッケージマネージメントツールで、UNIX系ソフトウェアのインストールを管理してくれるもの。
Rubyで作られている。

インストールは
http://brew.sh/index_ja.html
ここの手順に沿う。

インストール

githubからダウンロード、インストールする。
http://brew.sh/index_ja.htmlの下の方にあるコマンドをそのまま実行すればよい。
以下が実行例。

まずbrew doctorをせい、ということなので。

以上はうまくいった場合。
少しでも気を抜くとこんな風に怒られる。
24時間updateしてないだけで。
brewで作業するならまずbrew updateしてから、にしたほうが良さそう。

update。

PATHの変更

せっかくbrewでソフトウェアをインストールするなら、それを使ってくれるようPATHを修正する。
profileに以下の一行を加える。

試してみよう
ドット「 . 」に続けてprofileを指定すれば読み込んでくれる。
そのあとにPATHの中身を確認。

/usr/local/binが二回続けて出てくるけど、まあよしとする。

使い方

使い方は以下のとおり。
まあ、一般的ですよね。

[メモ]zpoolのVersionについて(Versionナンバはもう使われない)

Pocket

 

過日、zpool v28のアップグレードをして、いくつかのfeature flagsを有効にした。
したのだが、よく分からないことがいくつかあった。

すなわち、最新のはずのv28なのにアップグレードを促されたこと、アップグレードしたら zpool get allの結果からバージョンが消えてしまったこと、である。

WikipediaのZFSやOpenZFSを眺めてみて分かったのは、zpool((Open)ZFS)はv28以降、バージョンナンバの使用を止めてしまったせいとの由。
http://en.wikipedia.org/wiki/OpenZFS
http://en.wikipedia.org/wiki/ZFS#RELEASEHISTORY

以下に調べた結果を示す。
なお、ご覧の通り情報の出所はwikipediaである。
問題ないとは思うが、各位においてはご留意されたい。

ZFSの歴史

もともと、zpoolやZFS filesytemに機能が追加されるたび、バージョンナンバがインクリメントされてきた。
しかし2010年、OpenSoralisの開発が停止され、ZFSはオープンソースではなくなった。
本家(Oracle)のZFSはプロプライエタリとなって、2013/12/24現在、ZFS filesystemはv6, ZFS Poolはv34まで進んでいる。

それはそれとして、illumos(OpenSolaris後継)やBSD/Linux/OSX関連の方々は、オープンであったzfs v5, zpool v28をベースに本家とは別の開発が進める。
これが2013年にOpenZFSとなる。

バージョンナンバとフィーチャーフラグ

OpenZFSはいろんな所でいろんな人々が開発を続けている。
こういった状態で、単一のバージョンナンバを付与することは不可能である。
そこでフィーチャーフラグ(feature flags)という考え方を導入する。
機能ごとに個別の名前を与える、というもの。

個別の名前は、feature@<org-name>:<feature-name>という書式で表される。
org-nameは当該機能を開発した組織名。一意の名前。もちろん、勝手につけることは許されない。
org-nameが明らかな場合には、feature@<feature-name>と短縮してもよい。
feature@async_destroyというように。

フィーチャーの状態

フィーチャーの状態には三つある。
disabled, enabled, activeである。

  • disabled: 無効。機能を使えない状態。
  • enabled: 機能を使える状態。有効にはなっていない。
  • active: 機能が有効。旧バージョンとの互換性がなくなっている。

フィーチャーの種類

  • features for write : 書き込みには必須の機能。読み込みのみであれば不要。
  • features for read : 読み込み、あるいはpoolを開くために必須の機能。

たとえばasync_destroyはデータ書き込みの時だけ必要な機能なのでfeatures for write。

バージョンについて

一つでもフィーチャーを有効にするとpoolのバージョンは1000になる。
1000とはめちゃくちゃな数に見えるかもしれないが、本家のバージョンと被らないようにするため。

おわりに

ここで改めてzpoolの出力を見てみると、poolのバージョンがハイフンになっていることや、フィーチャーの記載など、なるほどと理解できることがありますな。