2007年5月6日星期日

五一过完了

  又有将近半个月的时间没有写点东西了,足见我最近有些懒惰。
  之前一直想装Gentoo,可苦于硬盘空间有限一直没有动手。最近新买了一个移动硬盘,于是有了新的方案--把Ubuntu装到移动硬盘里面,让出本本硬盘空间来装Gentoo。
   五一放假的第一天下了一整天雨,正好给了我时间来摆弄它。之前我的本本装的是ubuntu 6.10,一直有点小问题(内置麦克不能用),7.04发布时一直想升级。本想直接将它升级到7.04再copy到移动硬盘里面,可在升级时发现apt出了问题,于是干脆下载了一个新版本的iso镜像硬盘安装。由于之前没有将系统装到移动硬盘的经验,在网上google了很多文章,大概的方法都是需要修改initrd文件,加入相关的usb模块和scsi模块。了解了方法后开始动手,用的是alternate镜像文件直接硬盘安装,字符界面的安装过程让我感觉更加的自然。安装完成之后,出乎我的意料的是,竟然可以直接从移动硬盘启动而不需要修改initrd文件,又一次让我感受到了ubuntu的human。另外,本本的内置麦克也能够很好的使用了,这样我就可以更方便的使用skype了。相对于6.10新版本有了许多新的特性,自动提示安装音频解码器、受限驱动安装提示、集成了compiz3D效果。不过它还是花费了我一两个小时来装整个系统弄得适合我使用,它内置的3D桌面效果似乎过于简单了些,我还是装上了beryl。
   接下来的几天时间,陪安哥逛了两天武汉,看了20集《LOST》。装Gentoo的事就先抛一边了。
   直到今天才又开始弄Gentoo,第一次装gentoo还算顺利。不过我没有找到国内较快的gentoo的镜像,花了一个上午装好了一个base的gentoo系统,有些无法忍受镜像的网速(快的时候也不过30多k),X系统和桌面系统就过天再装吧。顺便休息一下,跑到ubuntu里边听音乐边写博客了。西城男孩和U2的音乐都不错。何训田的《般若心经》堪称经典。

2007年4月22日星期日

好东西TOR

  很多时候我们在访问一些国外的网站的时候会遇到打不开的情况。这是因为中国政府出于政治上的考虑将其封掉了。避如正常情况下我们无法访问www.wikipedia.org。这一个由草根编写的大百科全书,应当说是信息技术进步给予人类获取知识、共享知识的一个文明成果,可在中国大陆却因一党之私被封掉了!再比如我们只要在www.google.com(非google.cn,google.cn搜出的东西是经过过滤的)中输入稍带政治敏感性的词语,马上会出现无法访问的页面。另外,我们还会遇到比如访问过某些网站之后会被对方记录下一些信息,比如你所使用的浏览器,你访问的时间,来自何地。对一隐私意识强的人来说这是不安全的。近日发现一个非常好的东东-Tor,为我们突破限制、增强安全提供了很棒的方案。
  Tor是为抵御流量分析的一个工具集,我们可以把它看作是一个本地的代理服务器,支持Linux/BSD/Unix、Mac OS、Windows系统。关于tor的实现原理可以去tor.eff.org了解。在ubuntu下安装tor很简单

sudo apt-get install tor
sudo apt-get install privoxy

修改配置文件 /etc/privoxy增加如下的一行

forward-socks4a / 127.0.0.1:9050 .

别忘了最后那个点。然后启动两个服务

sudo /etc/init.d/tor start
sudo /etc/init.d/privoxy start
再将浏览器代理服务器设为127.0.0.1端口设为8118就可以使用tor了,只不过速度有些慢,毕竟它是通过网上许多的tor服务器中转。对于Firefox流览器来说安装一个torbutton的扩展插件可以很方便的实现tor功能的开关。

2007年4月2日星期一

Wine

  Linux系统之所以没有广泛应用于桌面系统的一个主要原因是它的应用程序太少;但应用软件厂商又因为linux的使用不够广泛而不愿意花费精力推出linux应用程序。在这种情况下,Wine开源项目为我们在linux下运行windows程序提供了可能。Wine项目起源于1993年,当时它的主要目的是在linux下运行windows 3.1程序。现在wine的最新版本是0.9.34,能够安装于基于x86的UNIX类系统中,如linux、FreeBSD、Mac OX及Solaris等。关于wine的详细历史可以访问它的官方网站(www.winehq.com)。
  在Ubuntu下wine是默认安装的,当然要想使用最新版本的wine需要下载官方网站的源码包然后再安装。进入到wine源码目录下,运行如下命令:

  ./configure
  make depend
  make
  make install

1. wine配置
  使用winecfg命令。在X终端下运行winecfg命令会弹出配置窗口,包括如下的标签页:
  • Applications 设定应用程序要使用的windows环境,wine能够模拟不同的windows环境。

  • Libraries 为一些程序设定特定动态链接库

  • Graphics 设定图形输出属性

  • Desktop Integration 设定wine使用的windows主题

  • Drives 将文件夹映射到wine驱动器

  • Audio 设定声音系统

  • About 

  在用户目录(~/.wine/)下有几个以.reg为后缀名的文件,这就是wine模拟windows下的注册表。我们可以使用文本编缉器来编缉它。

2. 使用wine运行程序
   wine "c:\program files\appname\appname.exe"  

3. wine中的字体
 将windows系统下的字体拷贝到~/.wine/driver_c/windows/fonts下编辑应的注册表文件可使用windows字体。 
  

2007年3月18日星期日

关于I18N与字体

  前阵子一直困惑于字符编码、字体及locale。这两天在网上goole了很多文件,总算有了点头绪,写一个学习总结。
  字符编码是计算机用于表示人类各类字符的"密码本",也就是通常我们讲的“内码”。对于英语来讲ANSIC码已经完全足够了,但对于非英语的其它语言却远远不够,因此就有了其它的许多字符编码,如简体中文编码就有GB2312,GB18030等;繁体中文的BIG5编码。 计算机之间的通信采用相应的字符编码进行,但人要想阅读这些传递过来的信息,就必须让计算机把相应的编码翻译成相应的字符,这就需要相应的字体文件了。字体有点阵字体和矢量字体两种。字体都是一个个小小的方块图片,点阵字体实际上就是记录着如何显示方块图片的一些控制信息,矢量字体则是使用数学函数来描述如何显示方块图片。矢量字体可缩放。字体的显示则由相应的字体渲染工具完成。
  
  linux中为了解决不同地区和语言的信息通信与存储问题,就有了所谓国际化(简称为I18N)与本土化。对于中文用户来说,这实际上就包括看中文、写中文及与windows中文系统的兼容与通信。linux通过locale的设置来实现。当然在英文的locale环境中,也可以实现看中文,这只需要系统中有相应的字符编码和合适的字体文件。如果系统编码设置不对,那么就会出现乱码。光能显示中文是不够的,我们还需要写中文。这就需要设置local环境了。locale这个单词的意思是地区,那么此处讲的locale实际上是指一个地区的一个交流习惯或者文化传统。在linux中通过一系统的环境变量来描述。它主要包括所使用的语言符号及分类(LC_CTYPE),非货币数字显示格式(LC_NUMBER),比较和排序习惯(LC_COLLATE),时间显示格式(LC_TIME),货币单位(LC_MONETARY),提示信息(LC_MESSAGES),姓名书写方式(LC_NAME),地址书写方式(LC_ADDRESS),电话号码书写方式(LC_TELEPHONE),度量衡表达方式(LC_MEASUREMENT),默认纸张大小(LC_PAPER)。另外还有两个变量LC_ALL和LANG,这些变量的默认值为C或POSIX。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集。在ubuntu中,所有的字符集都放在/usr/share/i18n/charmaps目录下。
  
  在ubuntu中,安装locales: sudo apt-get install locales
  查看当前系统中可用的locale: locale -a
  查看当前系统的locale设置: locale
  增加新的locale: dpkg-reconfigure locales

  字体是我们一进入X window就必须整天面对的,清晰、美观的字体会使我们使用电脑赏心悦目,轻松愉快。X中支持TrueType字体的主要有两类字体渲染引擎:Xft和X核心字体系统。
  Xft是一个library,它没有自已的配置机制,它依靠fontconfig库来配置和定制字体,Xft负责字体的显示。也就是说, fontconfig是一种让X系统可以找到某种字体的库,而Xft是负责在X系统中把fontconfig库找到的字体如何显示出来的库。GTK+2.x和QT程序都可以使用Xft字体系统,但GTK+1.x程序是不支持Xft字体系统的,它只能使用X11核心字体系统。为Xft系统字装字体很简单,只需把相应的字体文件拷贝到fonts.conf中指定的字体文件目录即可,fontconfig会自动感知新字体。用fc-cache命令手动更新系统字体配置。
  配置X11核心字体有两步,第一步是建立字体目录,在该目录中包含字体文件。第二步是配置X服务器,使它能使用这些字体。
  字体目录建立后,进入到该目录运行mkfontdir生成fonts.dir索引文件;运行mkfontscale生成fonts.scale索引文件。如果是位图文件只需要fonts.dir文件,如果是TrueType的可缩放字体,则需要fonts.scale。设置Xorg配置文件确定包含上述字体路径和正确加载X字体模块。重启X服务器后就可使用刚安装好的中文字体了。
  

2007年3月16日星期五

发件人 武汉下雪

2007年3月15日星期四

ubuntu读写ntfs文件系统

  ubuntu默认情况下是支持ntfs文件系统的,不过只能读不能写且根用户挂载之后只有根用户能访问,有点麻烦。
  近日发现一个开源的ntfs文件系统驱动-ntfs-3g,很好的解决了这一问题。ntfs-3g是基于FUSE的一个用户态文件系统,支持包括Mac OS X, FreeBSD, NetBSD及Linux等系统。能够完美的支持ntfs文件系统的读、写,但由于是用户态文件系统,使得它在IO操作时明显占用CPU资源,这算是它的一个缺点。
  在ubuntu下安装ntfs-3g非常简单,直接通过源安装:

sudo apt-get install ntfs-3g

  当然也可以去官方网站(www.ntfs-3g.org)下载源码安装。ntfs-3g的使用也很方便。有两种方法手动挂载一个ntfs分区。
第一种是通过mount命令加上ntfs-3g选项:

mount -t ntfs-3g /dev/hda2 /media/windows -o locale=zh_CN.utf8

第二种方法可以直接使用ntfs-3g命令:

sudo ntfs-3g /dev/hda2 /media/windows -o silent,umask=0,locale=zh_CN.UTF-8

  若想启动时自动挂载,可以修改/etc/fstab:

/dev/hda2 /media/windows ntfs-3g silent,umask=0,local=zh_CN.utf8 0 0

2007年1月26日星期五

  在新本本上安装上Ubuntu也有一阵的时间了,一直没有总结,今天写编文章总结一个安装过程。
  首先是把联想的一键恢复删除掉,把3G隐藏分区释放出来。从网上下载了一个hpatools,在Dos下直接运行hpatools /clr删除,然后用pm将硬盘重新分区。前阵子还一直考虑要不要继续使用Windows,毕竟俺的是Z版的。在体验了ubuntu liveCD之后,我决定把windows彻底的赶出我的电脑,于是把硬盘全分成了linux分区。
  接下来开始安装过程,安装很简单。第一次安装ubuntu感觉相当不错,兼备了RedHat简便的安装方式及Debian优秀的包组织结构。接下来更主要的任务就是设置问题,按照ubuntuChina上的wiki说明一步步进行。ping了一下,cn.archive.ubuntu.com这个源是最快的,于是把源换成了它。接下来安装Java环境,安装LumaQQ,安装Flash支持,安装code32及mplayer。一切搞定之后,将整个系统升了一下级非常简单的几个命令sudo apt-get update; sudo apt-get upgrade; sudo apt-get dist-upgrade。ubuntu下的字体实在不够漂亮(漂亮的商业字体都要钱的)。接下来开始美化:
  1. 将Windows下的simsun.ttc tahoma.ttf verdana.ttf verdanab.ttf verdanaz.ttf tahomabd.ttf verdanai.ttf拷贝到/usr/share/fonts/zh_CN(我的windows是正版的,也就是说我购买了这些字体的使用权,因此这应该不算侵权)
  2. 安装字体到系统中
  cd /usr/share/fonts/zh_CN
sudo makefontscale
sudo mkfontdir
sudo fs-cache
sudo chmod 755 *
3. 用如下的内容替换/etc/fonts/laguage-selector.conf
< fontconfig >
< alias >
< family>serif
< prefer>
< family>Bitstream Vera Serif< /family>
< family>SimSun< /family>
< family>DejaVu Serif< /family>
< family>AR PL ShanHeiSun Uni< /family>
< family>AR PL ZenKai Uni< /family>
< /prefer>
< /alias>
< alias>
< family>sans-serif< /family>
< prefer>
< family>Bitstream Vera Sans< /family>
< family>SimSun< /family>
< family>DejaVu Sans< /family>
< family>AR PL ShanHeiSun Uni< /family>
< family>AR PL ZenKai Uni< /family>
< /prefer>
< /alias>
< alias>
< f amily>monospace< /family>
< prefer>
< family>Bitstream Vera Sans Mono< /family>
< family>DejaVu Sans Mono< /family>
< family>SimSun< /family>
< /prefer>
< /alias>
< match target="font">
< test name="family" compare="contains">
< string>Song
< string>Sun
< string>Kai
< string>Ming
< /test>
< test compare="more_eq" target="pattern" name="weight">
< int>180< /int>
< /test>
< edit mode="assign" name="embolden">
< bool>true< /bool>
< /edit>
< /match>
< match target="font">
< test name="family" compare="contains">
< string>Song< /string>
< string>Sun< /string>
< string>Kai< /string>
< string>Ming< /string>
< /test>
< edit name="globaladvance">
< bool>false< /bool>
< /edit>
< edit name="spacing">
< int>0< /int>
< /edit>
< edit name="hinting">
< bool>true< /bool>
< /edit>
< edit name="autohint">
< bool>false< /bool>
< /edit>
< edit name="antialias" mode="assign">
< bool>true< /bool>
< /edit>
< test name="pixelsize" compare="less_eq">
< int>18< /int>
< /test>
< edit name="antialias" mode="assign">
< bool>false< /bool>
< /edit>
< /match>

< match target="pattern">
< test name="family">
< string>SimSun< /string>
< string>SimSun-18030< /string>
< string>AR PL ShanHeiSun Uni< /string>
< string>AR PL New Sung< /string>
< string>MingLiU< /string>
< string>PMingLiU< /string>
< /test>
< edit binding="strong" mode="prepend" name="family">
< string>Tahoma
< string>Verdana
< /edit>
< /match>

< match target="pattern">
< test name="family">宋体
< edit name="family" mode="assign">SimSun
< /match>
< match target="pattern">
< test name="family">新宋体
< edit name="family" mode="assign">SimSun
< /match>
< match target="pattern">
< test name="family">仿宋_GB2312
< edit name="family" mode="assign">FangSong_GB2312
< /match>
< match target="pattern">
< test name="family">楷体_GB2312
< edit name="family" mode="assign">KaiTi_GB2312
< /match>
< match target="pattern">
< test name="family">黑体
< edit name="family" mode="assign">SimHei
< /match>

< /fontconfig>


完成之后就可以到gnome下设置字体了。
美化完成之后,接下来安装超酷的Beryl桌面管理器。
首先在/etc/apt/sources.list中加入如下的源:
deb http://ubuntu.beryl-project.org/ edgy main

再导入包的GPG密钥
wget http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add -
使用sudo apt-get update更新源
由于我使用的是6.10版本,ubuntu中已包含了AIGLX只需启用它就行了。编缉/etc/X11/xorg.conf
将section "Module"中的
Load "dri"
Load "dbe"
Load "glx"
前的注释符"#"去掉,如果没有相应的行,加上即可。在section "Device"段中,为自己的显卡加上如下的一行:
Option  "XAANoOffscreenPixmaps"
在文件最后加入如下两段:
Section "DRI"
Mode 0666
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection
重启X,
sudo /etc/init.d/gdm restart

使用如下命令安装beryl及相应的主题
sudo apt-get install beryl
sudo apt-get install emerald-themes
直接运行
beryl-manager
超酷的3D桌面出现了!
要想每次登陆gnome时启动beryl,只需在启动会话中加入beryl和beryl-manager即可。