google-code-prettify

ラベル pkgsrc の投稿を表示しています。 すべての投稿を表示
ラベル pkgsrc の投稿を表示しています。 すべての投稿を表示

2008-09-11

NetBSD-currentでcannaserverが落ちるのを修正する

NetBSD-currentのバージョンを上げたら、cannaserverが動作しなくなってしまった。

cannaserverのlib/RK/ncache.cに、以下のコードがある。
#define hash(x)     ((int)((x)%NCHASH))

xはどこかのバッファのアドレスで、このアドレスを元にhashのインデックスを作成しているようだ。

このアドレスが0x80000000以上になるとhash(x)が負になってしまい、誤動作してしまう。
このバグを直すには、
#define hash(x)     ((int)(((unsigned long)(x))%NCHASH))

とcastしてやれば良い。

08/09/12追記:
他に困っている人いないのかな?と思って検索してみた。
- Orz日記でも取りあげられていた。
- cvs版では、06/03/30に修正済みだった。(未リリース)

2008-08-21

pkgsrcのrubyをrdoc無しでビルドする

pkgsrcのrubyは、そのままの状態では--enable-install-docがconfigureのオプションに付いているので、rdocのインデックスも構築しようとする。

メモリが少ない環境(16MBとか…)だと、これが結構きびしい。というか、スワップしまくりでビルドが終わらない。

/etc/mk.confに以下のように書くと、rdocのインデックスを作らない。
PKG_OPTIONS.ruby=-ruby-build-ri-db

2008-08-19

distccでpkgsrcをビルドする

distccを使ってpkgsrcをビルドする時に、
$ make CC=distcc
としても、以下のようなエラーが出てビルドする事ができない。
$ make CC=distcc
=> Bootstrap dependency digest>=20010302: found digest-20080510
ERROR: This package has set PKG_FAIL_REASON:
ERROR: Unable to satisfy dependency: gcc34>=4.1.2
*** Error code 1

Stop.
$

distccでpkgsrcをビルドするには、まず/etc/mk.confに以下のように書く。
PKGSRC_COMPILER=distcc gcc
DISTCC_HOSTS=192.168.0.1 localhost

その後、フツーに
$ make
とすれば良い。

参考
http://www.ki.nu/software/pkgsrc/distcc.html

2008-04-02

pkgsrcで、依存したパッケージをinstallせずに、extractだけを行う

pkgsrcで、make extractを行うと、ソースをextractするよりも先に、依存したパッケージをinstallしてしまう。

make extract SKIP_DEPENDS=yes
とすると、依存したパッケージをinstallせずに、extractしてくれる。

単に「extractしてソースだけ見たい」という場合に便利。

via tech-pkg

2007-11-20

ftp.netbsd.orgにIPv4でアクセスする

うちの社内のネットワークは、なんちゃってIPv6になっていて、LAN内はIPv6が通るのだが、外とのIPv6通信はできない。

そんなネットワークでPKG_PATHをftp.netbsd.orgにしていると、pkg_add時にIPv6通信しようとして、パッケージを持ってくる事ができない。

IPv4で通信をするには、アドレスをftp.netbsd.orgではなくftp4.netbsd.orgにしておくと良い。

PKG_PATHの設定はhttpにしておくと良いかも

pkgsrcでは、通常PKG_PATHには、ftp://ftp.netbsd.org/.../Allのようなアドレスをセットする。

今日、NetBSD4.0RC2をPCにインストールして、pkg_addしようとしたら、
229 Entering Extended Passive Mode
と出た後止まってしまい、全然インストールができなかった。

ftpクライアントで手動で接続した時には、
ftp> epsv
EPSV/EPRT on IPv4 off
と入力すればExtended Passive ModeをOFFにして通信できるのだが、pkg_addでepsvを発行する方法がわからない。

ふと思い立って、PKG_PATHをftp://ではなくhttp://にした所、何の問題もなくパッケージのインストールができた。

2007-08-27

packages-2007Q2でrubyのインストールに失敗する

packages-2007Q2でi386のrubyをインストールしようとしたが、失敗してしまう。
どうやら、
ftp://ftp.netbsd.org/pub/pkgsrc/packages-2007Q2/NetBSD-3.1/i386/All
には、ruby18-baseのバイナリパッケージが存在しないようだ。

しかたないので、packages-2007Q1からインストールした。

このあたりの仕組みがよくわかっていないのだが、どうなっているのだろう?
・pkgsrc-2007Q2の時点で、ビルドできたパッケージだけをuploadする。
・ruby18-baseはその時点ではビルドできなかった。
という事なのだろうか。

今からNetBSDを使い初めようという人は、rubyがインストールできなくてハマってしまいそうな気がする。

2007-06-20

MacOSXでpkgsrcを使う

MacOSXで使えるパッケージシステムにはFink, MacPortsなどいろいろあるらしいが、NetBSDでなれているのでpkgsrcを使うことにした。

1. xcodeをインストールしておく
2. ディスクイメージを作るために、pkgsrc/bootstrapを取得

$ CVS_RSH=ssh cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout pkgsrc/bootstrap
$ cd pkgsrc/bootstrap

3. pkgsrcは大文字小文字を区別するファイルシステムでしか動作しないので、ディスクイメージを作ってマウントする。ディスクサイズは適当に(私は4GB=4096にした)。

$ ./darwindiskimage create ~/Documents/NetBSD 4096 # megabytes - season to taste
$ ./darwindiskimage mount ~/Documents/NetBSD
$ sudo chown `id -u`:`id -g` /Volumes/NetBSD

4. /usr/pkgにいろいろインストールされるので、ディスクイメージにリンクを張っておく。

$ sudo ln -s /Volumes/NetBSD/pkg /usr/pkg

5. 改めて、pkgsrcを全てとってくる。

$ cd /Volumes/NetBSD
$ CVS_RSH=ssh cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout pkgsrc

6. pkgsrcをビルドするためのコマンドをビルドする。

$ cd /Volumes/NetBSD/pkgsrc/bootstrap
$ sudo ./bootstrap --pkgdbdir /usr/pkg/pkgdb



なお、pkgsrcのビルドは、bmakeを使う。

参考:
http://www.ki.nu/software/macosx/pkgsrc.html
http://www.netbsd.org/docs/pkgsrc/platforms.html#bootstrapping-pkgsrc

2006-11-11

xzgvで日本語ファイル名を表示させる

pkgsrcに入っているxzgvでNTFS領域にある日本語ファイル名を表示させると、表示が化けてしまう。
詳しくはわからないのだが、以下のようになっているようだ。
  • NTFS上のファイルの日本語はUTF-8で格納されている
  • xzgvで日本語を表示するには、GTKにEUCで渡せばよい(私がlocaleをEUCにしているから?)
そんなわけで、無理矢理日本語ファイル名を表示させるパッチを作成。
patch-local-aa
patch-local-ab

2006-10-11

pkgsrcのMercurialリポジトリ

1日に1度、wip/cvs20hgでアップデートしているとの事。
http://hg.scode.org/mirror/pkgsrc

これは便利そうだ。
ついでにsrc/のMercurial用リポジトリもあるといいな。

2006-09-05

pkgsrcのデフォルトのpythonのバージョンを変える

pkgsrcで使うpythonのバージョンは、pkgsrc/lang/python/pyversion.mkで

PYTHON_VERSION_DEFAULT?= 23

のように指定されている。
2.4でpkgsrcをビルドしたいなら、mk.confに

PYTHON_VERSION_DEFAULT=24

と書いておけば良い。
(現在のpkgsrcでのデフォルトバージョンは既に2.4になっている)