GNU/Linux

gitweb配置(configuration)

gitweb是git的web接口,使用单向的http协议来发布git repositories。 通过gitweb可以来浏览任意版本的目录树,查看文件的内容,查看分支的log或shortlog,检视commits,commit信息以及指定commit所做的改变。gitweb可以产生RSS或Atom格式的feeds。可以获取任意指定版本的文件,如果允许,也可以下载指定版本的快照(snapshot)。也可以通过作者、提交者或者包含的某些提交信息来搜索commits。 gitweb的配置比较简单。 Debian默认将gitweb脚本gitweb.cgi安装到/usr/lib/cgi-bin/目录,使用的配置文件为/etc/gitweb.conf。 我将gitweb作为一个单独的虚拟主机来配置,gitweb的主目录为/home/${username}/public_html/pcware.cn/git,此处的${username}指代所在主机上的用户名,gitweb的主目录可以依个人喜好设置。

Ubuntu 9.04下安装Firefox 3.5正式版(Release)

让我们翘首企盼的firefox 3.5正式版(Release)于6月30日正式推出,但是Ubuntu社区却迟迟没有更新,至今已经有半月,官方源仍然毫无动静,难道是因为bug太多,要等到firefox 3.5.1再进行更新?不得而知了。 看来暂时只有自己动手,丰衣足食了。对于firefox的安装我不推荐使用非官方源,而是从Mozilla下载更新,3.5与以前的版本并存,这样当Ubuntu官方源更新的时候,可以顺利的更新到最新的官方firefox版本。 firefox 3.5的安装比较简单,从mozilla下载回来的文件名字为firefox-3.5.tar.bz2,遵循FHS(Filesystem Hierarchy Standard)的指导意见,firefox最好安装到/opt目录下面,用下面的命令直接把bz2包解压到/opt目录下就可以了。 tar jxvf firefox-3.5.tar.bz2 -C /opt 这样就算安装完成了,命令行运行/opt/firefox/firefox或者建一个桌面快捷方式都可以,记得一定要运行/opt/firefox目录下的firefox,而不是firefox-bin或run-mozilla.sh。 这样两个版本的firefox使用同一套profile,可以和平共处,至于暂时不兼容的插件(Extensions)hack一下吧。

VirtualBox虚拟硬盘VDI扩展容量(resize/expand capacity)

虽然VirtualBox支持虚拟硬盘的动态扩展,也就是VDI文件的大小随着guest使用的容量而增大,但是动态扩展的上限就是你最初指定的虚拟硬盘的大小值。也许是因为心理的原因,这个值你指定的过小了,你使用了一段时间才会发现这个问题。我就是这样:(。但是很不幸,现在VirtualBox还没有提供改变虚拟硬盘大小上限的功能。其实安装guest时完全可以指定一个很大的值,毕竟它不会占用多余的硬盘空间,仅仅占用guest真正利用到的空间而已。但是问题已经出现了,重新来过显然太过麻烦了,办法还是有的。

debian:ssh安全自动登录设置

用ssh来管理远程服务器真是一件很舒适安逸的事情,当然前提是要做足安全工作,internet上可是杀机四伏啊。 记得我刚安装好Debian的时候 ,为root设置了一个很简单的密码,然后开放了ssh服务,没几天root帐号就让人给暴了, 看看/var/log/auth.log吧,真是惨不忍睹,里面全是尝试ssh登录的记录。好吧,我承认,当时是太没经验了。当然现在这种情况是一去不复返了。 下面就来说说如何提高ssh登录的安全性和自动登录ssh服务器。

traceroute: 使用纯真IP数据库显示中间路由器以及主机的地理位置

traceroute是常用的网络诊断和查询工具,但是通常traceroute只能显示中间路由器和主机的ip地址和主机名,如果能输出机器的地理位置是最好不过了。怎么办?重新写一个traceroute?这是windows的思路。traceroute已经足够好了,为什么要重写呢,我们只要把结果加工一下就可以了。不得不佩服UNIX的设计哲学,无疑这种正交的功能,如果硬要搀和在一起,实在是没什么必要和额外的好处。

awstats:utf8编码页面使用纯真IP数据库显示地理位置问题的解决办法

utf8是目前最好的多字节编码方案,支持世界上的绝多大多数语言,也是我最喜欢的字符集。debian lenny 上的awstats安装完毕后,默认输出iso-8859-1字符集,对中文支持不友好。打开/usr/lib/cgi-bin/awstats.pl ,定位到大约第80、81行将$PageCode变量的内容更改为’UTF-8′,这样awstats就可以吐出utf8编码格式的页面了。修改成utf8字符集还有一个好处,不用加载decodeutfkeys插件就可以正确的显示来自google的中文搜索关键字了。至于百度让它自生自灭去吧! awstats通过插件qqhostinfo插件和qqwry.pl库使用纯真IP数据库可以显示来访者的地理位置,是一个不错的解决方案。具体的使用方法网上转载很多,可以google之。纯真IP数据库使用的是gbk/gb2312/gb18030系列编码,而我的awstats使用utf8编码,所以显示出来的物理地址全部是乱码。解决方法也很简单,打开qqwry.pl,在文件前面加上一句”use Encode;”,然后找到”return $ipaddr;”这一行,在其前面加上一句”$ipaddr=decode(“gbk”,$ipaddr);” 就ok了,因为perl 5内部使用的就是utf8编码,所以就不用再encode成utf8了。

likely,unlikely宏与GCC内建函数__builtin_expect()

先罗嗦几句 最近在读linux 2.6 内核,虽然以前已经看了很多相关的知识,<<linux内核完全注释(0.11)>>也看了2,3遍,但读2.6内核仍然感到很吃力。面对2.6如此庞大的内核,信心真的不是很足,而且好像也没有很好的、有帮助的论坛来一起探讨,哎!现在正在边看<<情景分析>>,边看最新的内核,自<<情景分析>>出版以来,内核已经有了很多的变化,好难读啊!如果这样读下去算不算“皓首穷经”呢,不得而知了!