dram.me

NetBSD零碎笔记

[2008/11/14更新]

sudo设置

以前一直没有去尝试过sudo,现在发现这确实是个好东西。如果只是需要简单的功能,设置也并不复杂。运行visudo之后:

danran ALL=(ALL) ALL
Defaults:danran runaspw

ksh提示符

NetBSD默认安装了三个shell,sh, csh和ksh,我用的是ksh,下面是一个简单的提示符,有颜色,同时当命令出错时会提示返回值或者接收到的信号值。

my_prompt () {
        status=$?
        path=${PWD#$HOME}
        [ "$path" != $PWD ] && prefix='~'
        echo -n "^[[32m${prefix:-}${path}^[[31m${status#0}^[[0m\n\$ "
}

PS1='$(my_prompt)'

其中的 ^[ 需要通过 Ctrl-V + Esc输入。

更改终端字体

/etc/wscons.conf中加入:

font    sfnt    -   -   -   /root/s.fnt

setvar ttyE0 font sfnt

顺便推荐一下这个字体,就是s.fnt,可以在kbd包中找到它。 另外terminus也是可以在console下使用的。首先去一些linux的发行版 的二进制文件中抓取编译好的psf字体文件,我是从slackware中找的。然后按照这里提示的方法对psf文件做一些转化,之后就可以在NetBSD下 使用了。转化的命令摘录如下:

dd if=font.psf of=font.fnt bs=1 count=4096 skip=4

网络设置

如果网络环境是DHCP的话,在/etc/rc.conf中加入dhclient=YES再运行/etc/rc.d/dhclient start即可启用网络。 如果要设置静态IP,则需要在/etc/rc.conf中加入:

hostname="name"
defaultroute="网关"
ifconfig_rtk0="inet IP地址 netmask 掩码"

DNS与Linux系统一样,在/etc/resolv.conf中设置。

nameserver DNS

网络服务通过/etc/rc.d/network重启。 一般需要启用sshd,需要在/etc/rc.conf中加入sshd=YES。

ctags 没有 -R

NetBSD 中的 ctags 好像没有 -R 选项,去网上查了下,可以配合 find 实现:

find  dirname -name "*.[ch]" | xargs ctags

但这不是长久之计,应该NetBSD自带的ctags不支持tag重复的情况,所以最好还是安装pkgsrc中的exctags。

stardict安装

wip 里的好像和 gnome 的依赖性太大,所以没有从那安装,自己下了 stardict-2.4.8 的包,然后再用下面的 configure 一下:

./configure  -prefix=/usr --sysconfdir=/etc --mandir=/usr/man --disable-gnome-support

编译到最后会出现无法编译 stardict.desktop 的问题,不管它,反正这东西我也不用,所以直接进入 data 目录,将 stardict.desktop.in 改名为 stardict.desktop,这样就可以编译通过了。

编译时除了 gtk2 的包外,可能还需要 expat, freetype 这两个包。

readline 问题

NetBSD 下的 readline 好像有点问题,Python 历史,方向键等都不能使用,挺恼人的。找了下,好像 rlwrap,socat,rlfe 这些都是专门提供这种功能的软件,效果还不错。其实 python 的 readline 问题也可以通过安装 py-readline 这个包来解决。

gimmie 编译时 intltool 版本过低问题

原本也是摸不着头脑,但无意间 ls -l 可以看到 intltool-update.in 等三个文件链接到 /usr/share 上了,应该时 /usr/pkg/share 才对啊。

vim 编译

NetBSD 自带的 vim 不支持 python,但直接改 pkgsrc 好像又有问题,所以还是直接自己下载编译吧。

其实编译VIM并没有想像中的那么难。下载用 aap 就可以了。编译的话,只要在 src/Makefile 上把一下几个开启就可以了。

CONF_OPT_GUI = --disable-gui
CONF_OPT_X = --without-x
CONF_OPT_MULTIBYTE = --enable-multibyte
CONF_OPT_PYTHON = --enable-pythoninterp
CONF_OPT_CSCOPE = --enable-cscope

fcitx输入法

fcitx 我是直接从 www.fctix.org 下载的 fcitx 'GirlDog' 3.5-070703 版本。编译安装没什么问题,设置的话在 .xinitrc 中加入:

export LC_CTYPE=zh_CN.eucCN
export XMODIFIERS="@im=fcitx"
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE="xim"
export QT_IM_MODULE="xim"

我的系统的 locale 是 en_US.UTF-8