ござるのブログ

覚え書きいろいろ

各OSのPATHの初期値

はじめに

FreeBSD 10.1で

$ pkg install ctags

として、Exuberant Ctagsを入れたのに

$ ctags -R
ctags: illegal option -- R
usage: ctags [-BFTaduwvx] [-f tagsfile] file ...

と言われます。/usr/local/bin/ctagsではなく/usr/bin/ctagsが呼ばれていて、FreeBSDPATHの初期値が、Debianと違うことに今さら気付きました。以下、自分のためのメモです。

Debian Sidの場合

/etc/login.defsで設定。

ENV_SUPATH      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH        PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

/usr/binよりも/usr/local/binが優先される。

OSX Yosemiteの場合

/etc/paths(と/etc/paths.d/)で設定

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

/usr/binよりも/usr/local/binが優先される。

FreeBSD 10.1の場合

/etc/login.confで設定

default:\
        :passwd_format=sha512:\
        :copyright=/etc/COPYRIGHT:\
        :welcome=/etc/motd:\
        :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
        :path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:\

/usr/local/binよりも/usr/binが優先される。

最後に

わかってないと地味にひっかかりそう…

VirtualBox上のFreeBSD 10.1でホストのOSX Yosemiteとsshfsでファイル共有

はじめに

OSX Yosemite上のVirtualBox内にFreeBSD 10.1を入れました。早速

$ pkg install virtualbox-ose-additions

として、virtualbox-ose-additionsをインストールしましたが、現時点で「共有ホルダー」は使えないようです。(ここで開発中らしいです。期待しています。)

そこで、sshfsでOSX YosemiteのフォルダをFreeBSDにマウントしたのですが、ちょっとてこずりました。以下、手順メモです。

OSX Yosemiteでリモートログインを有効にする

これが無いと始まりません。「システム環境設定」→「共有」→「リモートログイン」にチェックを入れます。

f:id:gzalt:20150215093844p:plain

VirtualBoxの設定

下記のように、外部との通信用の「アダプター1」(NAT)に加えて、OSX Yosemiteとやりとりするための「アダプター2」(ホストオンリーアダプター)を追加します。

f:id:gzalt:20150215101601p:plain

FreeBSD 10.1の設定

fusefs-sshfsのインストール

$ pkg install fusefs-sshfs

/boot/loader.confの編集

FUSEを有効化する。

fuse_load="YES"

/etc/rc.conffusefs_enable="YES"とするという記事を見かけますが、変わったようです。(参考)

/etc/sysctl.confの編集

ユーザランドでマウントが利用できるようにする。

vfs.usermount=1

/etc/rc.confの編集

ifconfig_em0="DHCP"
ifconfig_em1="inet 192.168.56.203 netmask 255.255.255.0"
vboxguest_enable="YES"
vboxservice_enable="YES"

em1が「アダプター2」(ホストオンリーアダプター)です。OSX Yosemitevboxnet0192.168.56.1なので、適当に192.168.56.203の固定アドレスを設定しました。

/etc/groupの編集

operator:*:5:root,[自分のアカウントを追記]

やっとマウント

FreeBSDを一旦再起動して、ログイン後

$ mkdir hostdir
$ sshfs -o idmap=user 192.168.56.1: hostdir

とすると、パスワードを聞かれるので入力します。うまくいけば、OSX Yosemiteのホームディレクトリがhostdirにマウントされて、読み書きできるようになるはずです。

最後に

かなり前にFreeBSD(98)をいじって遊んだことがあるので、いろいろなつかしいです。

Ruby 2.2.0でRuby/TKを使えるようにするconfigureオプション

はじめに

rbenvruby-buildでそのままRuby 2.2.0を入れると、たいていRuby/Tkが使えないので、configureオプションを設定します。ちなみに、こちらのパッチは必要無くなったようです。

Debian SidやUbuntu 14.10 (64bit)の場合

$ apt-get install tk-dev
$ RUBY_CONFIGURE_OPTS="--with-tcltkversion=8.6 \
--with-tcl-lib=/usr/lib/x86_64-linux-gnu \
--with-tk-lib=/usr/lib/x86_64-linux-gnu \
--with-tcl-include=/usr/include/tcl8.6 \
--with-tk-include=/usr/include/tk8.6 \
--enable-pthread --enable-shared" \
rbenv install 2.2.0

FreeBSD 10.1の場合

$ pkg install tk86
$ RUBY_CONFIGURE_OPTS="--with-tcltkversion=86 \
--with-opt-dir=/usr/local \
--with-tcl-include=/usr/local/include/tcl8.6 \
--with-tk-include=/usr/local/include/tk8.6 \
--enable-pthread --enable-shared" \
rbenv install 2.2.0

最後に

WindowsRuby/Tkを使う場合は、こちらのサイトが大変参考になります。