Archive for the ‘Linux’ Category

如何安装Subversion,及通过Apache提供HTTP服务
Friday, May 18th, 2007

服务器上httpd,Subversion都是自己编译的。

最初安装Subversion时,配置Apache,HTTP访问不了。查Apache的Log发现有segmentation fault. 曾经也在网上找过合适的mod_dav_svn.so恰好能用,但这只是投机取巧,自己也不放心,还是找到根本的解决办法比较好。

问题的原因在于Apache和Subversion都使用了APR库,然而用的不是一个版本。我不知道Subversion为什么带着apr 0.97发布(该版本似乎不支持大文件),apr的最新版本已经是1.2.8了。Apache里的版本是比较新的,我用Apache的APR替换Subversion的来编译,这样它们用的就是同一版本了,不再有segmentation fault,使用过程中也没有发现其它问题。

下面是安装的过程。安装swig-py是为了能够将svn与trac结合,你当然可以不安装它。

  1. 将subversion-1.4.3, subversion-deps-1.4.3在同一目录解压,然后把subversion-1.4.3目录中的apr和apr-util两个目录删除,将apache源代码中的两个目录复制过来。
  2. 先安装neon

    # ./configure -with-zlib –enable-shared –enable-static –with-libs=/usr/local
    # make && make install
    将neon目录改名:
    # mv neon neon-back

  3. 安装subversion/swig-py

    # make clean
    # make clean-swig-py
    # ./configure –prefix=/etc/subversion –with-apxs=/etc/httpd/bin/apxs –with-swig –with-neon=/usr/local
    # make && make swig-py
    # make install && make install-swig-py

安装过程中假设Apache的安装目录是/etc/httpd/,make会自动把mod_dav_svn.so安装到/etc/httpd/modules目录,在httpd.conf中load,就可以配置Subversion的HTTP访问了。

如何为Yourkit配置以jsvc方式运行的Tomcat
Wednesday, May 16th, 2007

我们一般在Linux服务器上用jsvc(Java Service)来运行Tomcat 5.5。Tomcat的源代码中带了jsvc,在bin目录中。jsvc工具是属于commons-daemon项目的,Tomcat中带的是最新的稳定版本1.0.1。

用Yourkit来profile一个J2EE Web应用,首先需要在Tomcat启动时加上profile agent的参数,-agentlib:yjpagent. 然而,1.0.1版本的jsvc并不支持Java 1.5的参数”-agentlib”。当然,你可以在catalina.sh中加参数,用startup.sh启动Tomcat,但应该还是有许多人希望用jsvc运行。

我最初Google的结果来自Yourkit的服务论坛。2005年的问题,到现在还没有解决,甚至yourkit的人都不知道jsvc是什么东西。

终于在Apache的bugzilla里看到有人提出了jsvc不支持Java 5的新参数的问题,而下面有开发人员回复说在trunk里已经修正。又搜到这样一个网页,可以看到parse函数中处理了agentlib这个参数。

但jsvc在Apache SVN的什么地方呢?坚持找了好久,终于找到了这个地址

好,从这里co一份代码替换原来的jsvc,编译。编辑/etc/init.d/tomcat,加上agentlib参数。如果按照Yourkit的文档做好了准备工作的话,启动Tomcat,在%TOMCAT_HOME%/logs/catalina.out中就可以看到Yourkit的agent已经工作了,且可以知道它在哪个端口上工作。

打开Yourkit的图形界面,连接到这台服务器,就可以监视上面的J2EE应用了。

不知道新版本的commons-daemon什么时候发布,或者新的jsvc代码什么时候被打包进Tomcat. 但如果你需要JVM 1.5的新参数,就应该使用最新的SVN代码。

我很无奈
Saturday, January 6th, 2007

doc格式很垃圾,但悲哀的是它有时候在有些场合下成了标准。比如你交给别人一个文档他却要求你不能使用M$ Word之外的格式,而你又不能得罪他。于是桌面上出现了这样的景色(又多用了一个盗版软件,哈哈):

m$ office in linux

同理可知IE。

截图时发现在打开gnome菜单的时候Print screen键竟然无效。只好用ImageMagick中的import命令:

sleep 10 && import -window root -display :0 screenshot.png

执行这个命令,等待10秒后,主板叫两声,图就保存下来了。

慎用 Shift+Del 啊
Saturday, December 23rd, 2006

我Muse的源文件放在wiki根目录下的一个文件夹里面,叫source. 还有一个目录叫software,本来是想把它删除重新发布的。删完后去发布,却告诉我目录不存在之类,一看,我靠,source没了!搜索了一下,Linux里恢复文件比较麻烦。多亏现在发布的页面还不多,我一个一个又从HTML弄成了Muse的格式。然后多了个心眼,把Muse源文件一起更新到服务器上去了。

用图形的文件管理器时,相近的文件名很容易看混,而用shell操作,这样错误的几率可能会小一点。以后在文件管理器中只用Delete好了,完了都进.Trash了,时间长了再清理。

对了,Muse发布的页面在这里。刚加了CSS上去,大家给看看这个网页,还有这个,给提点意见:smile:.

Nautilus预览音乐
Sunday, December 17th, 2006

许多人不会注意到Nautilus还可以预览音乐。如果安装了mpg123,把鼠标停放在某个音乐文件上时,就会自动播放,鼠标离开时停止播放。在Edit->Preferences->Preview那里可以设置预览选项。不过除了有声音,其它现象都没有,所以一般不会注意这个功能。

没多大用。还是希望gtk/gnome去死。现在不得已用gnome,emacs在KDE里有时显示不正常,gtk程序在KDE里有一堆错误。许多优秀的程序用gtk做了界面,是堕落,也是无奈,之前QT还没有GPL。Ubuntu对KDE也不大重视,希望有一天KUbuntu消失,GUbuntu诞生。gtk去死,让qt一统江湖。qt的协议应该再开放些,windows中开源软件也可以用它的GPL协议就好了,这样更有助于它的发展和扩大市场。

Emacs 23支持xft
Thursday, December 14th, 2006

前阵子在Gnome中不能用XIM,后来解决了又不能用–enable-font-backend选项,现在终于一切都没问题了(至少我们关心的没问题了)。

取得最新的源代码,加选项–enable-font-backend和–with-xft来编译。我用如下参数启动

emacs --enable-font-backend --font "Bitstream Vera Sans Mono-14"

效果:

Emacs-snapshot-unicode-2

glxgears输出FPS
Wednesday, December 13th, 2006

想用glxgears输出一下FPS看看,怎么弄都不输出了,很郁闷,在manual上也看不到相关的选项。

搜索半天才发现glxgears已经改了但是manual page并没有更新。glxgears一直被当作Linux里面测试3D性能的一个benchmark来使用,但它并不能成为一个benchmark,因为测试太片面了。

新的glxgears发源加一个选项才打印FPS,或者是-printfps,或者是-iacknowledgethatthistoolisnotabenchmark。从后面这个长长的参数就可以看出其用意,这些人也太搞了:smile:。

现在glxgears的选项有:

-display
-info
-stereo
-fullscreen
-iacknowledgethatthistoolisnotabenchmark
-printfps
wine in Edgy
Thursday, December 7th, 2006

今天才发现原来在Ubuntu Edgy里面,wine已经相当好了。运行魔兽时,除了偶尔声音稍微有点不对劲,其他一切都非常好,声音的缺陷也基本上没什么影响。

cedega在模拟的时候有几点很不爽。首先是不能输入中文,wine模拟时Ctrl+Space中文输入法就出来了,输入也很正常。另一点是进去以后除非退出游戏,否则无法切换到其他程序(不过中途有Gaim聊天窗口弹出的话可以出来,也许是有办法切换的,我不了解),而在wine中,这个全屏的模拟窗口跟其它窗口有相同的行为,可以Alt+Tab随意切换。但随之而来的一个不便之处就是Alt和鼠标右键同时按下时,就出来了操纵窗口的菜单。

刚运行了一下winecfg,Graphics里有一项设置叫“Allow the window manager to control the windows.”,可能cedega默认把这个关闭了吧,应该也可以设置。那里也写着,如果禁用这个选项的话,模拟的效果会更好一些。

可惜的是我现在用wine和cedega都无法成功模拟CS。

Mark在上次party上透露7.04版本的一个亮点就是使游戏在Linux中更容易玩,希望wine到时候能做得更好。

游戏伤身,少玩为好