カテゴリー : FreeBSD

pkgngのproxy設定

pkgngのプロキシ設定の方法
sudoを使用すると、環境変数の設定が引き継がれないため、設定ファイルにプロキシサーバの設定を追加しました。

/usr/local/etc/pkg.conf に下記の内容を追記します。

PKG_ENV:
  HTTP_PROXY: http://192.168.1.1:8080

2行目のサーバのIPアドレスとポートは、任意のものに変更してください。
また、HTTP_PROXYの左側の空白は、タブではなくスペースなので注意してください。
PKG_ENV以降の設定については、pkg コマンド実行時に、環境変数として設定されるようになっています。

以上です。

PKGngを使ってみる

FreeSBD9.1で、PKGngの設定を行ったときのメモです。
FreeBSD9.1リリース向けのPKGngリポジトリ提供が4月から開始されています。
下記のURLを参考に設定ししました。
http://gihyo.jp/admin/clip/01/fdt/201304/10

まず、ports correctionとの連動のために、make.confの編集と、データベースの更新を行います。

$ echo 'WITH_PKGNG=yes' >> /etc/make.conf
$ pkg2ng

あとは、上記URL通りに、/usr/local/etc/pkg.confファイルの設定と
公開鍵のダウンロードを行って設定完了です。

簡単なpkgの使い方です、
・パッケージのアップグレード

$ pkg upgrade -fy

・パッケージの検索

$ pkg search <検索したいパッケージ名>

・パッケージのインストール

$ pkg install <インストールしたいパッケージ名> 

FreeBSDのFirefoxツールバー日本語化

久々にportsを更新していたら、Firefoxのツール「バーが日本語ではないことに気づきました。
firefox-i18nをインストールしただけでは、日本語化されなかったので備忘録として記録しておきます。

1. portsのインストール

/usr/ports/www/firefox-i18nをインストールします。

2. localeの設定

  • firefoxを起動し、URL入力部分に about:config を入力
    「I’ll be careful, I promise!」をクリックしてください。
  • general.useragent.locale の値をjaに変更
    search から、general.useragent.locale を入力
    en-US から ja に変更

3. add-onの有効化

  • [Tools] -> [add-ons] を選択
    Languages の項目を選択
  • Japanese Language Pack 18.0 (disable)の項目
    EnableのボタンをクリックしていEnableに変更

4. firefoxを再起動
ツールバーが日本語化されています。

ports更新時の依存関係の修復

chromium のバージョンをあげようとおもって、portsnap でportsを最新にしてみたら
下記のエラーがでて、gtk20 のところでコンパイルでエラーになってしまいました。

      Shared object "libpcre.so.0" not found

どうも、libpcre のバージョンが上がっても、依存しているパッケージが再コンパイルされない
ことが原因みたいです。emacsも下記のエラーがでて起動しなくなっていました。

Shared object "libpcre.so.0" not found, required by "libgtk-x11-2.0.so.0"

この場合の対策方法は、2つだと思います。
1)/etc/libmap.conf を使って動的リンクを変更する
2)依存関係のあるパッケージを、全てコンパイルする

1) /etc/libmap.conf を作成し、下記のように記載する

    sudo vi /etc/libmap.conf
    libpcre.so.0    libpcre.so.1

emacs は起動するようになりました。

2)依存関係のあるパッケージを、全てコンパイルする

依存関係のあるライブラリを洗い出します

    grep -n -e "libpcre.so.0" /usr/local/lib/*

多すぎる。。。

Binary file /usr/local/lib/libIDL-2.so matches
Binary file /usr/local/lib/libIDL-2.so.0 matches
Binary file /usr/local/lib/libORBit-2.so matches
Binary file /usr/local/lib/libORBit-2.so.0 matches
(中略)
Binary file /usr/local/lib/libwnck-1.so.22 matches
Binary file /usr/local/lib/libxklavier.so matches
Binary file /usr/local/lib/libxklavier.so.12 matches
Binary file /usr/local/lib/libxml++-2.6.so matches
Binary file /usr/local/lib/libxml++-2.6.so.2 matches

すごい数ですが…
とりあえず、x11-toolkits/gtk20 に依存関係のあるライブラリをコンパイルしてみます。

  > sudo portmaster -fR x11-toolkits/gtk20

-fR をつけることで、強制的に依存関係のあるportsも再コンパイルされます。

コンパイル完了後、依存関係のあるパッケージをみるt、gtkに依存関係のあるパッケージはなくなりましたがまだたくさんのこっていたので結局全コンパイルしました。

どのパッケージでインストールされたかは、以下のようにして確認できます。

> pkg_info -W /usr/local/lib/libxml++-2.6.so
/usr/local/lib/libxml++-2.6.so was installed by package libxml++-2.34.2

以上です。

distfileのダウンロードサイト設定

portsをmakeする際に、distfileをダウンロードするサイトを日本国内優先にするために、下記の設定をmake.confに記載しました。

MASTER_SITE_OVERRIDE=http://ftp.riken.jp/FreeBSD/distfiles/${DIST_SUBDIR}/

これで、ダウンロードの時間がかなり短縮できるとおもいます。

Xmodmap

MacのVirtualBoxにFreeBSDを入れましたが、Altキーが小さくて使いにくいので、Commandキーをメインに使うようにする設定を忘れないように書いておきます。
普段、emacs を no window で使うことが多いので、ターミナルだとCommandキーがMetaキーとして使えないことも大変不便だったので、Xmodmapを使ってキー割り当てを変更しています。
Alt+tabで出来るWindow切り替えを、Command+tabで出来るようになるので結構便利です。
VirtualBoxのホストキーのデフォルトは、CommandキーなのですがOptionキーを割り当てて使用するようにしています。

修正前の設定は、下記の通りです。ターミナルでxmodmapを使うことでわかります。

% xmodmap 
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Eisu_toggle (0x42)
control     Control_L (0x25),  Control_R (0x6d)
mod1        Alt_L (0x40),  Alt_R (0x71),  Meta_L (0x9c)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x73),  Super_R (0x74),  Super_L (0x7f),  Hyper_L (0x80)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)

mod1 は、ターミナルでもキー配送される装飾キーになります。そこにコマンドキーに対応するSuper_LとSuper_Rをmod4からmod1に変更します。
キーコードは、xevで調べることができます。

設定は、下記のような~/.Xmodmapを作成して、 xmodmapで読み込みます。
普通にインストールされてGDMを使っているような方は、次回ログイン時から自動的に読み込まれる設定になっていると思います。

remove mod4 = Super_L
remove mod4 = Super_R
add mod1 = Super_L
add mod1 = Super_R
%xmodmap ~/.Xmodmap

変更後のxmodmapは、下記の通りです。

%xmodmap
xmodmap:  up to 6 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Eisu_toggle (0x42)
control     Control_L (0x25),  Control_R (0x6d)
mod1        Alt_L (0x40),  Alt_R (0x71),  Super_L (0x73),  Super_R (0x74),  Super_L (0x7f),  Meta_L (0x9c)
mod2        Num_Lock (0x4d)
mod3
mod4        Hyper_L (0x80)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)

以上です。