Minicondaを試そうとしたが

普段、PythonをHomebrewでインストールしたpyenvで使っているのですが、ふとpyenv install -lを見てみたら色々なパッケージがありました。

$ pyenv install -l
Available versions:
  2.4.0
...           # ふつうのPython2系
  2.7.7

  3.0.1
...           # ふつうのPython3系
  3.4.1

  anaconda-1.4.0
...           # 数値計算ライブラリが最初から入ってるPython
  anaconda-1.8.0

...

  miniconda-2.2.2
...           # なんだこれ?
  miniconda3-3.4.2

...

どうやら、MinicondaというのはPython数値計算のライブラリを使うためのパッケージのようですが、Anacondaと違って、あとからライブラリを選んで入れるようでした。

http://conda.pydata.org/miniconda.html

そこでせっかくなので、試しに入れてみました。


まず、pyenvでMinicondaの最新版を入れます

$ pyenv install miniconda-3.4.2
$ pyenv global miniconda-3.4.2
$ pyenv rehash

(一度シェルを開き直す)

$ python --version
Python 2.7.7 :: Continuum Analytics, Inc.


$ conda list
# packages in environment at /Users/rkmathi/.pyenv/versions/miniconda-3.4.2:
#
conda                     3.5.5                    py27_0
openssl                   1.0.1h                        0
pip                       1.5.6                    py27_0
pycosat                   0.6.1                    py27_0
python                    2.7.7                         0
pyyaml                    3.11                     py27_0
readline                  6.2                           2
requests                  2.3.0                    py27_0
setuptools                3.6                      py27_0
sqlite                    3.8.4.1                       0
tk                        8.5.15                        0
wsgiref                   0.1.2                     <pip>
yaml                      0.1.4                         1
zlib                      1.2.7                         1


$ conda install numpy
Fetching package metadata: ..
Solving package specifications: .
Package plan for installation in environment /Users/rkmathi/.pyenv/versions/miniconda-3.4.2:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    numpy-1.8.1                |           py27_0         3.0 MB

The following packages will be linked:

    package                    |            build
    ---------------------------|-----------------
    numpy-1.8.1                |           py27_0   hard-link

Proceed ([y]/n)? yes

Fetching packages ...
numpy-1.8.1-py 100% |#######| Time: 0:00:46  67.81 kB/s
Extracting packages ...
[      COMPLETE      ] |#######| 100%
Linking packages ...
[      COMPLETE      ] |#######| 100


$ conda list
# packages in environment at /Users/rkmathi/.pyenv/versions/miniconda-3.4.2:
#
...
numpy                     1.8.1                    py27_0
...

こんなかんじで、とりあえずNumPyを入れるところまで動かしました。

次に、インストールしたパッケージを使って環境を作ります。

virtualenvwrapperみたいなかんじですが、環境を作るときの入れたいパッケージを自分で選び、足りない場合はダウンロードからしてくれます。

例として、Numpy 2.1.0とIPythonをインストールしたnumpy21という名前の環境を作ってみます。

$ conda create -n numpy21 ipython numpy=2.1.0
Fetching package metadata: ..
Solving package specifications: .
Package plan for installation in environment /Users/rkmathi/.pyenv/versions/miniconda-3.4.2/envs/numpy21:

The following packages will be linked:

    package                    |            build
    ---------------------------|-----------------
    ipython-2.1.0              |           py27_2   hard-link
    numpy-1.8.1                |           py27_0   hard-link
    openssl-1.0.1h             |                0   hard-link
    python-2.7.7               |                0   hard-link
    python.app-1.2             |           py27_2   hard-link
    readline-6.2               |                2   hard-link
    sqlite-3.8.4.1             |                0   hard-link
    tk-8.5.15                  |                0   hard-link
    zlib-1.2.7                 |                1   hard-link

Proceed ([y]/n)? yes

Linking packages ...
[      COMPLETE      ] |######| 100%
#
# To activate this environment, use:
# $ source activate numpy21
#
# To deactivate this environment, use:
# $ source deactivate
#


$ source activate numpy21

しかし、何故か自分の環境だとactivateした瞬間にシェルごと落ちました(;´Д`)

ナンデー

giter8とsbtでScalaを書く

最近Scalaを書くときはgiter8sbtを使ってて、便利なのでメモがてら軽く手順などを書いてみます。

giter8

GitHubに上がっているhogehoge.g8みたいなリポジトリをテンプレートとして、SBTなプロジェクトを生成してくれる便利なヤツです。

OSX & Homebrewを使っているなら、

$ brew install giter8

で入ります。

たとえば、https://github.com/rkmathi/basic-project.g8を使いたいなら、

$ g8 rkmathi/basic-project

で生成できます。

hogeブランチを使いたいなら、

$ g8 rkmathi/basic-project -b hoge

のように、-b <branch name>オプションを使うことができます。

手順

1. giter8、sbtをインストール

OSXならば上に書いたとおり、

$ brew install sbt
$ brew install giter8

でOKです。

2. giter8でSBTプロジェクトを作成する

自分がつくったrkmathi/basic-projectは、バージョンと組織名とプロジェクト名を指定するようにしています。

$ g8 rkmathi/basic-project
version [0.0.1-M1]:
organization [com.example]:
name [basic-project]:

Template applied in ./basic-project

$

3. 実行する

runで実行、testでScalaTest実行、assemblyでsbt-assemblyでのJAR出力ができます。

$ cd basic-project
$ sbt
...
$ run
$ test
$ assembly

giter8便利˙꒳˙

Gentooドキュメントの翻訳

Gentooドキュメント http://www.gentoo.org/doc/en/index.xml にはよくお世話になっているのですが、このドキュメントは 日本語版 もあります。

日本語版は英語版をもとに翻訳されているのですが、記事によっては4年前から更新されていないものもあります。

古くなってしまっている翻訳を更新するには、GitHubリポジトリ(https://github.com/gentoojp/gentoo-doc-ja)のIssueに登録して、プルリクエストを投げると処理してもらえます。


翻訳するには、xml/htdocs/doc/pofiles以下にある、*.poファイルを編集します。

msgidが原文で、msgstrへそれに対する翻訳を書くという流れのようです。

翻訳が一通りおわったら、ルートディレクトリで

$ make report

をすると、正しいフォーマットで翻訳できたかどうかをチェックしてくれます。

このチェックをしないと、プルリクエストを投げたとしてもTravisCIで落ちてしまいます。

チェックが通ったらプルリクエストを投げて、レビューしてもらうのを待ちます。

これが、Gentooドキュメントのおおまかな翻訳フローになります。

さくらのGentooにsystemdを導入する

みんな大好き さくらのVPS にGentooLinuxを入れているのですが、久しぶりにカーネルアップデートしようと思い、ついでにsystemdを導入してみました。

Gentoo Wiki

みんな大好き Gentoo WikiSystemd を見てカーネルコンフィグとかしたらすんなり起動しました。

ip

ただ、起動はしたもののssh接続ができず、なんでだろうなーと見ていたらインターネットに繋がらなくなってしまっていました。

dhcpcdを使っていないので、どうやらnetwork.serviceみたいなのを自分で書かないといけないようなので、 みんな大好きArch Forums をみて、同じように/etc/systemd/system/network.serviceに設定ファイルをかきました。

$ cat /etc/conf.d/network
interface=eth0
address=XXX.XXX.XXX.XXX (VPSのアドレス)
netmask=255.255.254.0 (VPSのネットマスクアドレス)
broadcast=XXX.XXX.XXX.XXX (VPSのブロードキャスト)
gateway=XXX.XXX.XXX.XXX (VPSのゲートウェイ)
$ cat /etc/systemd/system/network.service 
[Unit]
Description=Network Connectivity
Wants=network.target
Before=network.target
 
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/network
ExecStart=/sbin/ip link set dev ${interface} up
ExecStart=/sbin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev ${interface}
ExecStart=/sbin/ip route add default via ${gateway}
ExecStop=/sbin/ip addr flush dev ${interface}
ExecStop=/sbin/ip link set dev ${interface} down

[Install]
WantedBy=multi-user.target

「ipコマンドが無いよ」と言われてしまったので、sys-apps/iproute2をインストールしました。

# emerge -av sys-apps/iproute2

最後に、

# systemctl daemon-reload
# systemctl enable network.service
# systemctl start network.service
# systemctl enable sshd.service
# systemctl start sshd.service

これで無事sshログインもできるようになりました。