Tag Archive for 'debian'
这篇早该和大家见面的文章今天终于在笔者的努力下和大家见面了。正如大家看到的题目一样,本文讲的是有关于deb包的制作。当然,笔者并不是一个debian开发者,也不是一个ubuntu开发者。本文的目的是给新手一个简单的,关于如何将一般安装步骤为configure, make, make install的软件打成一个deb包,以方便管理的一个指南。当然有的朋友会说,用checkinstall就可以了。不过关于checkinstall,我听过好多人说这种方法过于dirty,到底如何笔者没有试过,也不好评价。您可以选择使用checkinstall,但我可以保证,看完本文,您将会发现其实用常规的方法制作一个deb包也是很简单的。
Continue reading ‘deb包简易制作:以gmlive为例’
其实很简单的三招就可以让你的系统性能提升许多。
第一招:为分区添加noatime挂载选项
具体做法是修改/etc/fstab,在分区的default选项后面添加noatime挂载选项,用逗号和default隔开。就像这样:
/dev/hda1 / jfs defaults,noatime 0 1
第二招:使用deadline调度器
具体的做法是在启动时加上内核选项”elevator=deadline”.(是elevat后面加or。不知道为什么or会变成x?)
通常情况下默认的调度器是cfq。gentoo wiki上有关于cfq的这样一段描述:
CFQ: Only use it on ext3, this scheduler’s goal is not performance, but about balancing IO among all resources.
我看了后有点无语,怎么ext3那套都不是优先考虑性能的。所以,如果你是桌面应用的话,使用deadline调度器吧。
要查看当前系统所使用的调度器可以cat一下/sys/block/sda/queue/scheduler文件,sda换成你自己对应的硬盘。用中括号括起来的就是正在使用的调度器。
还有一个说法是jfs配合deadline调度器使用性能超好。arch wiki上关于jfs的文章说:
Indeed, JFS’s performance seems to exceed that of other GNU/Linux file systems with this particular scheduler being employed.
关于此话题可以参考linuxfans上的这篇帖子。
第三招:使用tmpfs
可以把/tmp挂载成tmpfs来获得性能提升。做法是在/etc/fstab中添加:
tmpfs /tmp tmpfs defaults 0 0
这招对于提高mplayer的播放性能有很大帮助,因为mplayer是把影片cache在/tmp目录下的。这个我是深有体会,以前看720p的片子那个卡啊。用了上面说的第二招后有所改观。当用了这招后,720p的影片播放起来相当流畅!
你还可以让更多的目录使用tmpfs。比如在/etc/default/rcS文件中设定
这样/var/run和/var/lock目录也会使用tmpfs。
debian默认将/dev/shm挂载成tmpfs,你可以把些编译的活放到这下面进行,当然你的内存要够用哦。
Debian package description,即软件包描述,就是您执行apt-cache show pkgname时所看到的关于软件包功能的介绍。Debian或Ubuntu用户可能都有发现,有些软件包描述是中文的,但大部分是英文的。中文软件包描述可以极大方便新用户选择软件包,所以翻译它绝对是个好主意。想想吧,能够看到中文的软件包描述是件多好的事。
其实Debian早已准备好了,此项目叫做DDTP (The Debian Description Translation Project)。它有个Web翻译平台,叫DDTSS,这个平台的操作方式有点类似于wiki,你可以匿名进行翻译,也可以注册一个帐号。如果14天未使用帐号,那么帐号将被自动取消。一旦某个软件包的描述被翻译成中文后,就会进入review (复查)状态,要成为translated状态,review数必须达到3,也即有三个不同的人review后都觉得没问题,才会变为translated。当然你不可以自己review自己的翻译,DDTSS会记录你的IP的。如果某人在review时,觉得哪里翻译得不妥当,于是更改了,那么这个软件包就会重新进入review过程,review数重新从0开始。听起来要想进入translated状态还真难,稍有异意就又要从头开始review。不过这也有助于保证翻译的质量,一定要有个大家都认可的翻译才行。
知道怎么操作了,那就开始释放你的翻译激情吧。也可以做做复查工作,看看别人的翻译有没有蹩脚的地方,哪里还需要改进。无需注册,无需担心重复劳动,也无需任何经验,一切只要通过浏览器即可。那么还等什么呢?赶快贡献自己的一份力吧!
mlocate是GNU locate的一个变种。相比原始的locate,它具有一个很好优点:
* 每次更新数据库时并不需要重新读取全部目录的内容。mlocate 在数据库中保存了
时间戳信息,无需重新读取,就能判断目录内容是否改变。所以更新的速度更快,对硬盘
的占用也更少。这是 mlocate 特有的功能。
上面这段是已经翻译过来的mlocate的deb包描述,向译者致敬!这个功能非常好,以前用locate时,每次更新数据库时硬盘吱吱作响,搞得我不得不将它改为每周更新一次数据库。而mlocate几乎让我感觉不到它的存在。
似乎mlocate已成了Debian的标配了,因为我并没有安装过,它就已经在那了。本来想装locate的,发现已有locate命令,后来才发现是mlocate提供的。
有了mlocate,就可以把locate给删了,要不然你的系统会更新两套不同的数据库。
等了好多年,终于现在用起来没什么问题了,感谢Openchrome项目组的开发,呃,不过也让我等得太久了,眼泪都要出来了。
说到VIA的这个显卡那可真是臭名昭著啊,尤其是这个K8M800芯片组。OpenGL程序会死机,有些视频全屏后两边会有重影。谢天谢地,今天的升级一扫多年的郁闷,Openchrome太伟大了。
今天还是和往常一样打开新立得,把发行版设成experimental看看有什么新东西,突然发现xserver-xorg-video-via软件包后面居然标注着transitional dummy package字样,仔细看软件包描述上说被xserver-xorg-video-openchrome取代了。我赶紧装上openchrome的,还是svn版的。完后改了xorg.conf,重启X。呵,X起来了,小激动了一下。看看也没什么变化,想试试OpenGL性能有没有改进,于是打开smc。呃,令我失望的是,电脑还是冻结了。
重启完,不肯罢休,这次更新到底带来了什么改进?总该有点啊。于是看了/usr/share/doc/xserver-xorg-video-openchrome/NEWS.gz文件,慢慢看下来,我笑了。看看这个文件是怎么说的:
- AGPDMA has been disabled for K8M800 and VM800/CN700/P4M800pro in this release
because it causes screen repaint and lockup issues. The problem has been
tracked down to a bug in kernel drm. All kernel >= 2.6.22 are affected. This
bug will be fixed in the upcoming 2.6.25-rc7. It is also fixed in current
drm git tree. If you’re using one of the affected kernels, you’ll have to
either keep AGPDMA disabled or build the modules from the fixed drm git
tree. This option brings extra performance for some operations. To use it,
add ‘Option “EnableAGPDMA”‘ in the Device section of the xorg configuration.
这是在说,对于K8M800以及后面那一串芯片组来说,有个叫AGPDMA的东西被禁用掉了,因为它会导致屏幕重绘和锁死。呵,这不就是纠缠好久的问题嘛。2.6.22以上版本的内核都有这问题,而且还发现了这个问题是由内核的drm里的一个bug引起的。还说在即将来到的2.6.25-rc7里会被fix。呃,现在貌似都2.6.27了,如此说来我岂不是孤陋寡闻了?再往下看,说AGPDMA会带来额外的效果,还说如果要启用的说,在xorg配置文件的Device section中加入’Option “EnableAGPDMA”‘即可。哈哈,现在我用的都是2.6.26了,肯定没有问题了,于是赶紧改xorg.conf,启用AGPDMA。
重启X,打开smc,我已经做好死机的思想准备了。我选了开始游戏,接着没有死机,游戏画面出现了,没有死机,我第一次看到这个游戏的正式开始游戏的画面,我那个激动啊!
玩了一会,打开原先会重影的电影,全屏,靠,居然不重影了,画面效果真好啊。啊,我这显卡终于有出息了。
前几天又看到关于 ibus 的新闻,终于忍不住了,在我的debian上安装了它。
安装过程和 ibus 主页上的 ReadMe 描述的是一样的,直接从 git 仓库里取出源代码安装。如果还要安装五笔、二笔之类的码表输入法,也可以用同样的方法:
$ git clone git://github.com/phuang/ibus-table.git ibus-table
$ cd ibus-table
$ ./autogen.sh --prefix=/usr
这之后可能需要重新 configure 一下,因为默认什么码表都没启用。你可能需要执行:
$ ./configure --prefix=/usr --enable-wubi86 --enable-erbi-qs
来启用五笔86和二笔青松。完后再 make 和 make install。
我装完后发现选码表输入法时,中英文状态的图标显示叉叉,是少了两个图标的缘故。直接把编译目录下 /icons/chinese.svg 和 english.svg 复制到 /usr/share/ibus-table/icons/ 下面就好了。
然后运行 ibus-setup,就出来设置界面了。把“启动桌面时自动启动IBus”打上钩,这样 ibus 就会随桌面环境启动了。
因为我已经装了 scim 和 im-switch,所以直接在 .xinput.d 目录下新建了一个 ibus,在里面写入:
XIM=ibus
GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
然后 im-switch 选 ibus 就可以了。
如果你使用 QT3 程序比较多的话,那把 QT_IM_MODULE 设成 xim 可能会好一点,因为 ibus 没有 QT3 模块,要在 QT3 中使用 ibus 必须选 xim。
我在使用五笔的过程中有个问题,按下拼音反查键后可以用拼音输入汉字,但并不会出现该字的五笔编码,这怎么能叫反查呢?
还有 iceweasel 段错误和 openoffice.org 崩溃问题,但还是坚持使用 ibus,因为它实在是太 cute 了。
这个历史遗留问题真是烦死人了。如果没记错的话,就是这两步:
1. 把自己的 .gtkrc-2.0-kde4 直接复制到 /root 下并直接把它的名字改为 .gtkrc-2.0。
2. 把自己的 .config/Trolltech.conf 直接复制到 /root 下相应的位置。
这样就搞定了。synaptic 不再丑陋了。
这回的 0.10.0 在我的 Debian box 上编译成功了!真不错!上张图:

本来还为debian的grub在设置hiddenmenu之后无法显示splashimage而发愁呢,现在好了,直接grub2了。grub2的splashimage是官方支持的,不再是打patch了,而且是真彩色啊,想多绚丽就多绚丽。直接png或jpg图档就可以了,用不着搞什么麻烦的xpm.gz。最可恶的是,grub2居然能显示中文!还不仅仅是中文,其他不是英文字母的语言,只要是utf8的,都给你显示出来,真正的国际化支持。GNU/Linux的终端至今都要靠第三方软件才能显示中文。
虽然grub2还处于开发阶段,功能都没有完善,但我还是义无反顾的升级了,直接把它装到了mbr上。
挂起到底需要什么?以前一直以为要acpi的东西,其实不需要的。挂起的真正方案只有两种,一个是 s2ram,一个是 tuxonice,后者需要对内核打补丁,而前者是纯粹的用户空间程序。
Debian 的 s2ram 在 uswsusp 软件包中。
首先找出你的系统怎样挂起才能正常唤醒。如果仅仅 s2ram 就可以挂起并且能正常醒来的话,那就最好了,但如果你的机器是 unknown,用 s2ram 的话来说你的机器不再白名单之列,那么就需要附加参数以使 s2ram 正常工作。首先你得试试 s2ram -f,如果可行,那就没问题了,如果不行,那就按照下面的命令逐一试验,知道可以为止,这可是一个很伤机器的过程,但愿第一个命令就成功。
s2ram -f -a 3
s2ram -f -a 2
s2ram -f -a 1
s2ram -f -p -m
s2ram -f -p -s
s2ram -f -m
s2ram -f -s
s2ram -f -p
s2ram -f -a 1 -m
s2ram -f -a 1 -s
如果成功了,那么以后挂起就需要增加这些参数。当然这时相当麻烦的,而且直接用 s2ram 来挂起计算机也是很低阶的。
建立于 s2ram 之上
s2ram 很低阶,有许多实用脚本是建立在 s2ram 之上的,这里我们使用 pm-utils, 它可以自行配置。现在你已经知道了 s2ram 需要增加的参数,那么要让 pm-suspend 能正常工作,就需要让 pm-suspend 向 s2ram 传递必要的参数,我们将 pm-utils 的配置写在 /etc/pm/config.d/ 里,文件名随意,比如 config。
我们需要写上 ADD_PARAMETERS=”"
双引号里写要附加的参数,具体那些参数可以用 pm-suspend –help 查看。这些参数对应的是哪个 s2ram 的参数,可以看看 man s2ram,很容易对应起来的。
完后,pm-suspend 也可以正常挂起了。
到目前为止,挂起都还仅先于 root 用户,要让普通用户挂起,我们需要一些图形界面程序,kde 下可以用 kpowersave,gnome 可以用 gnome-power-manager,此外,普通用户还必须是 powerdev 组的成员。在没有其他电源管理脚本的情况下,上面的两个程序都会去调用 pm-utils 的。
这样,挂起的问题就解决了,我们根本不需要 acpi。