2009年8月28日星期五

继续写blogspot

自从blogspot被封以后,好长时间没有去登录,今天得闲,tor + FoxyProxy登录,把前段时间在http://liuhongdan.bokee.com的文章转到我的http://liuhongdan.blogspot.comhttp://hongdanliu.blogspot.com上,速度还行,呵呵。

ok,以后记着,别再落下了。

在fedora中安装lxr浏览内核源代码

说明:本文旨在在fedora中安装lxr,此安装方法与fedora版本无关,本文在fedora 11中进行的安装,参考的是fedora 4/9等文章说明,成功。使用普通用户安装,过程中使用到su命令,lxr设置为可以同时查看多个版本源代码。

1.下载lxr-0.3
下载地址:http://sourceforge.net/projects/lxr/files/
说明:lxr的最新版使用的是PostgreSQL,麻烦,0.3则不需要数据库,方便。

2.下载glimpse
http://webglimpse.net/download.php
http://webglimpse.net/trial/glimpse-latest.tar.gz

3.安装lxr
3.1解压lxr,进入解压后的文件夹lxr-0.3,修改Makefile文件,主要有两项:

Code:
# The location of your perl5 binary
PERLBIN=/usr/bin/perl
这是perl的路径名,/usr/bin/perl是大多数情况下的默认配置,如果不同,请用whereis perl查找。
# LXR will be installed here
INSTALLPREFIX=/var/www/html/lxr
这是lxr脚本的安装目录,其中/var/www/html取自Apache配置文件/etc/httpd/conf/httpd.conf中的DocumentRoot(文件根目录)的值。
3.2执行"make install"
Code:
su
make install
这会在上述INSTALLPREFIX目录安装相应的脚本和文件.

4.安装glimpse
进入解压后的文件夹,执行:
Code:
./configure
su
make install
以下操作需要root权限:

5.把源代码放在/var/www/html/lxr/source文件夹中
这里可以放多个,比如linux-1.0, linux-2.4.0, linux-2.6.18.8,其中linux-1.0.tar.bz2和linux-2.4.1.tar.bz2解压后的文件夹都是linux,请自行改名,原因后面说明。

6.在source中建立两个文件versions和defversion,其中versions为你的源代码版本(即你的目录),defversion为你的default version,即lxr默认展示的那个version。
versions的内容就是所有的源代码的版本,如下:
Code:
linux-1.0
linux-2.4.0
linux-2.6.18.8
defversion的内容如下:
Code:
linux-2.4.0
7.修改lxr的配置文件lxr.conf,先备份一下:
Code:
# cp lxr.conf lxr.conf.bak
需要修改的有variable v, baseurl, htmlhead, htmltail, htmldir, sourceroot, srcrootname, dbdir和glimpsebin,如下(这里用到了前面建立的两个文件versions和defversion):
Code:
# Configuration file.

# Define typed variable "v", read valueset from file.
variable: v, Version, [/var/www/html/lxr/source/versions], [/var/www/html/lxr/source/defversion]

# Define typed variable "a". First value is default.
variable: a, Architecture, (i386, alpha, m68k, mips, ppc, sparc, sparc64)

# Define the base url for the LXR files.
baseurl: http://localhost/lxr/http/

# These are the templates for the HTML heading, directory listing and
# footer, respectively.
htmlhead: /var/www/html/lxr/http/template-head
htmltail: /var/www/html/lxr/http/template-tail
htmldir: /var/www/html/lxr/http/template-dir

# The source is here.
sourceroot: /var/www/htl/lxr/source/$v/
srcrootname: $v

# "#include " is mapped to this directory (in the LXR source
# tree)
incprefix: /include

# The database files go here.
dbdir: /var/www/html/lxr/source/dbdir/$v/

# Glimpse can be found here.
glimpsebin: /usr/local/bin/glimpse

# The power of regexps. This is pretty Linux-specific, but quite
# useful. Tinker with it and see what it does. (How's that for
# documentation?)
map: /include/asm[^\/]*/ /include/asm-$a/
map: /arch/[^\/]+/ /arch/$a/
8.创建lxr/http/.htaccess文件,即/var/www/html/lxr/http/.htaccess,内容如下:

Code:

SetHandler cgi-script
9.修改/etc/httpd/conf/httpd.conf文件的lxr设置和ServerName设置
9.1在文件最后添加如下几行
Code:
# Cross Reference Stuff

Options All
AllowOverride All
或者
Code:

Options All
AllowOverride All
order allow,deny
allow from all
9.2修改vim /etc/httpd/conf/httpd.conf中ServerName为localhost:
Code:
ServerName localhost
说明:原文件中可能把ServerName注释了,如果不修改则会在开启httpd的时候找不到ServerName而有如下相似的错误:
Code:
#service httpd start
Starting httpd: httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
Starting httpd: [ OK ]
10.建立lxr的数据文件
由于前面设置的dbdir为/var/www/html/lxr/source/dbdir/$v/,我们在lxr/source/dbdir/下面建立 linux-1.0, linux-2.4.0, linux-2.6.18.8等相关文件夹,以linux-1.0为例,进入lxr/source/dbdir/linux-1.0,然后生成lxr数据文件:
Code:
# cd /var/www/html/lxr/source/dbdir/linux-1.0
# /var/www/html/lxr/bin/genxref /var/www/html/lxr/source/linux-1.0/
生成fileidx和xref两个文件
# glimpseindex -H . /var/www/html/lxr/source/linux-1.0/
生成7个.glimpse_*文件
# chmod 755 *; chmod 755 .g*
(中间是分号)将这几个数据文件修改为任何人均可读可执行。
11.启动Apache服务器.
Code:
# /etc/rc.d/init.d/httpd start
或者
# service httpd start
12.完成,在浏览器中输入地址http://localhost/lxr/http/,点击source就可以浏览和查找不同版本的linux源代码了,或者直接http://localhost/lxr/http/source也可以,一样的效果。

13.如果开启了selinux,则可能会被selinux禁止,使用如下命令关闭selinux:
Code:
# setenforce 0
查看selinux状态:
# getenforce
如果需要安装在自己另外设置的目录的话,需要在/etc/httpd/conf/httpd.conf中把DocumentRoot改为自己的目录,所有相关的Directory也需要更改。

Options All
AllowOverride All
order allow,deny
allow from all

即可。

fedora: 一个非常酷的主题+图标(Overglossed +Black-White 2 Vista)

fedora非常cool的主题,只要你看到,你一定会喜欢,那黑色的任务栏,深邃的蓝色,绿色的麦地,以及地平线上的太阳,没有刺眼,却很辽阔,没有灿烂,却有犹豫的晴朗。
上图:
Click the image to open in full size.
Click the image to open in full size.
Click the image to open in full size.
Click the image to open in full size.

方法:
主题为Overglossed:
http://gnome-look.org/content/show.p...13&forumpage=0
图标为black-white 2 Vista:
http://dbgthekafu.deviantart.com/art...Vista-73277142
图标里面有一些其他的图标,可以用来设置自己的主目录的各个文件夹的图标,在文件的属性里面改变图标即可。
背景为Grassy Sunset:
http://interfacelift.com/wallpaper/details.php?id=1537

参考:

10 Of The Best Linux Desktop Customization Screenshots To Inspire Your Creativity
http://maketecheasier.com/10-of-the-...ity/2008/11/28

1) My Desktop by ramios

* GTK2.0 Theme: Overglossed by TheRob [link]
* Emerald: Overglossed by TheRob [link]
* Icons: Black-White 2 Neon/Style by DBGtheKafu [link] [link]
* Wallpaper: Grassy Sunset by mattyv8 [link]

fedora 10的3D桌面教程以及相关设置

以前在bbs.fedora-zh.org写的文章,没想到似乎论坛的数据丢失了一部分,幸好有其他人转载,想起放在博客中备份一下,记录自己,方便后人。

http://bbs.fedora-zh.org/showthread.php?t=568

1.安装compiz:
代码:
[root@dan ~]# yum list compiz*
能看到很多关于compiz的包包
于是我们安装compiz:
代码:
yum install compiz
2.安装compiz-fusion:
代码:
yum install compiz-fusion*
3.安装fusion*
代码:
yum list fusion*
代码:
yum install fusion*
4.安装emerald主题(就是窗口装饰)
代码:

yum list emerald*
yum install emerald emerald-themes
5.安装任务栏托盘
代码:
yum list avant-window-navigator*
yum install avant-window-navigator
如果上面5个都OK了,那么可以在系统工具找到Compiz Fusion Icon了,启动就好了,会在右上角看到那个带鼠标蓝色立方体,avant-window-navigator在附件里面,也要启动,然后就自己配置吧!!
下面是我的图,可能有些人看过,不过我又配置为一样的啦











关于如何把compiz和avant-window-navigator添加到自启动:
1.应用程序-->系统工具-->Compiz Fusion Icon,右键,"将此启动器添加到面板"。
2.在面板上右键刚才添加的Compiz Fusion Icon带鼠标的蓝色立方体,选择"属性",这时候我们能看到启动器的属性,类型,名称,命令,注释等。
3.系统-->首选项-->个人-->会话,在"启动程序"中选择“添加”即可,按照方才的启动器的属性复制粘贴即可。
4.avant-window-avigator也同理。
5.下次启动时应该会自动启动了。


我超喜欢那张girl的图
下面是compiz的设置,firefox常用插件等。

关于Emerald设置:
右键通知区域的Compiz Fusion Icon图标,选择Emerald Theme Manager,则会出来我们安装的Emerald Themer,选择一款自己喜欢的主题,鼠标选中就可以了,不需要过多的设置。

关于CompizConfig设置:
同上,右键选择Settings Manager,则会打开CompizConfig Settings Manager窗口,下面几个是我个人推荐的选项:
1.桌面-->Expo, Desktop Cube, Rotate Cube,淡出到桌面
__说明:Expo效果是鼠标放在屏幕的左上角会远程显示所有的桌面和右上角会显示当前桌面所有的窗口的动画效果
2.特效-->3D 窗口, 动画, Cube Reflection and Deformation, Fading Windows, Window Decoration, Wobbly Windows
__说明:Animations要选中(1)特效设置-->对所有事件施行随机动画,不然动画效果不会出来的;(2)获得焦点动画-->动画选取-->双击编辑-->闪避(很好的效果,赞!)
__推荐随机效果:Curved Fold, 多米诺,爆炸特效,滑动效果1, Razr,插袋特效,Skewer,燃烧就算了吧。
__说明:Cube Reflection andDeformation里面Deformation-->Deformation-->无,不然会是椭圆形;Cubecaps主要设置 cube的颜色和top, bottom的图片。选择这个主要是要它的倒影功能!
__说明:Minimize Effect就不要选择了。
3.额外功能-->Window Previews
__说明:在awn上能看到缩略图,不错。
4.窗口管理-->Shift Switcher
__说明:win键+Tab的选择窗口的特效,赞!
5.General Options-->Opacity Settings-->Windowopacities-->Add,在对话框中输入“Tooltip | Menu | PopupMenu |DropdownMenu”,并设置透明值为90,这个是修改相关的窗口的透明度的。



关于scim输入法:
不管你用的什么语言环境,请使用以下命令即可:
代码:
im-chooser
scim -d
我还是喜欢横向的scim,竖着的看着不爽:
SCIM输入法设置-->面板-->GTK-->输入窗口-->垂直式候选窗口(勾掉),为什么会有宽屏的电脑,就是因为人们更为习惯左右移动眼睛,而不是上下移动眼睛!
这是我的scim历险:http://bbs.fedora-zh.org/showthread.php?t=567


关于Firefox设置:
关于firefox的插件推荐:
All-in-one Sidebar:侧边栏,很方便
Chatzilla:irc
ColorfulTabs:很漂亮的标签颜色
Ctrl-Tab:可以在不同的标签中选择
DownThemAll!:Down
Easy DragToGo:鼠标拖拽网址之类
Fast Dial:在空表标签里面显示你加入的爱好的网站缩略图,方便又好看
Firefox Showcase:忘了...
Flagfox:在地址栏显示当前网址的国籍
Flashblock:阻止flash
Forecastfox:天气预报
FoxSaver:FF的屏保,常常有意想不到的图片出现,还可以在线投票
Personas for Firefox:FF的在线背景设置,超赞!
ScribeFire:博客离线编辑器(谢谢gcell )
Tab Mix Plus:鼠标手势以及标签的使用
Undo Close Tabs Button:撤销关闭窗口
说明ScribeFire用来写blogger的时候,需要在API url的设置里面用https,不然会连不上服务器。请参考:
用ScribeFire来写blogger博客
http://liuhongdan.blogspot.com/2008/...reblogger.html


关于字体,建议使用AR PL UKai CN,很好的字体的,见图:

...
...
待续,晚上完成!

===========================
已经没有续了,后面的找不到了,看看是不是论坛数据丢失,如果真实如此,那么找回这么多已经不错了,o(∩_∩)o...哈哈

在fedora 11中安装nvidia quadro相关显卡

坛子里的《Fedora 11 安装及配置指南》(http://bbs.fedora-zh.org/showthread.php?t=1577)上说:
Code:
未被支持的 Nvidia 显卡
RIVA TNT
RIVA TNT2/TNT2 Pro
RIVA TNT2 Ultra
Vanta/Vanta LT
RIVA TNT2 Model 64/Model 64 Pro
Aladdin TNT2
GeForce 256
GeForce DDR
Quadro
GeForce2 GTS/GeForce2 Pro
GeForce2 Ti
GeForce2 Ultra
Quadro2 Pro
详见:http://www.my-guides.net/en/content/...drivers_nvidia
其实,这个指南上关于的N卡的安装指导已经需要更新了,因为这些已经绝大部分支持了。

nvidia用户估计常去的地方是nvnews吧,地址:http://www.nvnews.net/vbulletin/forumdisplay.php?f=14,置顶帖子告知我们Current official release: 185.18.14 (x86 / x86_64)http://www.nvnews.net/vbulletin/showthread.php?t=122606,根据链接,我们可以知道185所支持的nv卡,地址:ftp://download.nvidia.com/XFree86/Li...ppendix-a.html,里面明确说支持了,ok,我们所需要的就是安装这个版本的驱动了,安装方法么,最简单的就属yum了。

关于如何安装nvidia显卡驱动,请看置顶帖子liangsuilong的《在Fedora下安装nVIDIA显示驱动》:http://bbs.fedora-zh.org/showthread.php?t=1041,我们按照这个方法安装,其实就是看看仓库中有没有支持我们显卡的驱动,这里就是nvidia的185版本驱动了,或许以后看到的版本更高。

**注意: 你必须启用了 RPM Fusion 软件仓库,请参见安装 RPM Fusion 软件仓库 章节:http://www.my-guides.net/en/content/...2/3/#yum_repos,或者按照《Fedora下安装nVIDIA显示驱动》中的方法。

我的nvidia quadro nvs 140m,刚刚安装完毕,重启,看到久违的Nvidia画面,进入系统, compiz完全ok,Emerald也完全ok,熟悉的3D桌面又回来了。另外,显卡驱动安装后,系统的启动速度又加快了好几秒,估算一下,也就20秒左右的时间就到了gdm可以输入密码登录了,o(∩_∩)o...哈哈。
我安装后的相关包信息:
Code:
[liuhongdan@dan ~]$ rpm -qa | grep 185
akmod-nvidia-185.18.14-1.fc11.i686
kmod-nvidia-185.18.14-1.fc11.i586
xorg-x11-drv-nvidia-libs-185.18.14-2.fc11.i586
xorg-x11-drv-nvidia-185.18.14-2.fc11.i586
kmod-nvidia-2.6.29.4-167.fc11.i586-185.18.14-1.fc11.i586
kmod-nvidia-2.6.29.4-167.fc11.i686.PAE-185.18.14-1.fc11.i686
[liuhongdan@dan ~]$ rpm -qa | grep nvidia
akmod-nvidia-185.18.14-1.fc11.i686
kmod-nvidia-185.18.14-1.fc11.i586
xorg-x11-drv-nvidia-libs-185.18.14-2.fc11.i586
xorg-x11-drv-nvidia-185.18.14-2.fc11.i586
kmod-nvidia-2.6.29.4-167.fc11.i586-185.18.14-1.fc11.i586
kmod-nvidia-2.6.29.4-167.fc11.i686.PAE-185.18.14-1.fc11.i686
感谢pengjiayou,感谢liangsuilong!

最后总结一句话:
yum install akmod-nvidia akmods kmod-nvidia

电力出版社真抠

      5月份的时候,在china-pub上买了一本中国电力出版社《深入理解计算机系统》(http://www.china-pub.com/18133&ref=ps),没想到纸张竟然如此的薄,甚至能从第一页看到第五页上面的字,草纸啊,草纸
^_^
      很高兴告诉大家,这本书7月份就看完了,虽然没有把习题全部做一遍,有时间在继续,先把《算法导论》看完再说,恩,还有nginx代码!

2009年4月7日星期二

crontab与环境变量

      同事用crontab写一些定时程序,发现从前台调用程序,手动调用程序都没问题,唯独crontab里面就不行,由于里面包含了我和其他人的程序,而其他人的程序被其要求更改为了绝对路径没问题了,我的没改,因此执行出错。


      由于我的程序需要改动比较多,想想就懒得去改了,有没有简单的办法一劳永逸呢?想到除了crontab以外其他地方都没问题,估计是crontab的环境变量出了问题,没有系统的环境变量,所以必须加上绝对路径。于是写了一个小程序测试了一下,果然如此。


      随后google之,发现crontab启动加载的环境变量很少,root的是/etc/crontab,也可以在/var/spool/cron/root查看,不过却发现似乎crontab一点点环境变量都没继承进去,于是自己加上环境变量试试看,ok。于是直接把# env | grep ^SHELL, # env | grep ^PATH, env | grep ^HOME这些环境变量直接放入


SHELL=/bin/bash
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:.:/root/bin
HOME=/root

0 1 * * * /xxx/....
0 1 * * * /xxx/....

      然后运行,正确。
      总结:绝对路径,或者,环境变量。