友敏博客_百度空间
 
我的资料
 
生日 1981年 11月05日 婚姻状态已婚
   
 
文章列表
 
2008-05-17 15:19

我注册GDI了。有了个顶级域名,http://www.yomw.ws 注册GDI 还可以有个每月增涨的收入。 点击这里观看在线的影音说明。 如果你在注册GDI时有什么问题,可以联系我的QQ 550638880 还可以到我的新的百度空间去看 http://hi.baidu.com/yomgdi

 
2008-05-17 15:08

Google talk这款即时通讯软件已经推出有近两周的时间了。既然是Google的产品自然引来众多人来测试,很多朋友都发现了使用Gtalk的小技巧,笔者将把这些技巧呈现给各位读者。

技巧一:启动多个Gtalk

很多人都有多个GMAIL邮箱,因此Gtalk也就有了多个帐号,能否像QQ那样同时登录多个不同帐号呢?和MSN一样默认情况下Gtalk也只能开启一个程序。当然我们可以对此限制进行突破。

方法1:参数启动法

在桌面gtalk图标上点鼠标右键选择属性,在快捷方式标签中的“目标”地址处添加参数/nomutex,确定后就可以启动多个gtalk了,每次我们运行下该快捷方式都会单独打开一个gtalk登录窗口,从而实现了同时开启多个Gtalk的功能。(如图)

小提示:在实际使用中笔者发现居然可以用同一个帐户在一台机器上登录两个gtalk。另外还有很多参数提供给我们,例如/autostart设置随Windows的启动而启动,/checkupdate检查是否有更新版本,/factoryreset还原回默认的设置,/gaiaserver从不同的服务器登陆Gtalk,/prefetch=1快速启动gtalk,/superprefetch更快速启动。

方法2:修改源程序法

如果你对汇编语言比较熟悉或者敢于大胆尝试的话,可以通过修改googletalk.exe来实现上述功能。

用编辑工具打开googletalk.exe后查找修改以下内容

004536FD . 3BC6 CMP EAX,ESI

004536FF . 75 05 JNZ SHORT googleta.00453706

然后将其修改为

004536FD . 8BC1 MOV EAX,ECX

004536FF . EB 05 JMP SHORT googleta.00453706

修改完毕保存退出即可实现同时开启多个Gtalk的功能。

小提示:对于普通用户来说修改可执行文件存在一定危险性,所以建议大家还是使用方法1的参数启动法来完成此工作。

技巧二:设置Gtalk总在最上

默认情况下gtalk窗口不是总浮动在屏幕的最上方,打开一个窗口就会将其遮挡得严严实实。其实我们可以通过注册表突破这个功能。

第一步:通过任务栏的“开始->运行->输入regedit”打开注册表编辑器。

第二步:在注册表中找到[HKEY_CURRENT_USERSoftwareGoogleGoogle talkOptions],添加"show_pin"键值,让其格式为dword,内容为00000001就可以了。

第三步:退出注册表后gtalk窗口就会浮动在我们桌面的最上方。当然要恢复回原来状态的话使用参数/factoryreset即可还原回默认的设置。

技巧三:随意输入文字特效

在使用Gtalk进行聊天时很多人都厌倦了平白无力没有任何特效的聊天文字,其实我们可以为这些文字加上显示效果。

如果自己想使用粗体字进行gtalk聊天那么可以在自己聊天内容文字前后各加上一个“*”号。我们就可以看到粗体字和普通效果文字的区别了。(如图)

如果自己想使用斜体字进行gtalk聊天那么可以在自己聊天内容文字前后各加上一个“_”,同样我们也可以看到斜体与普通文字的区别。(如图)

 
2008-04-26 01:42
<a target=blank href=tencent://message/?uin=334689113&Site=友敏博客&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:334689113:7 alt="点击这里给我发消息"></a>
 
2008-04-19 20:04
dos下批量重命名(转) 1345
2008-02-29 01:31
今天使用FDO SDK,发现下载下来的文件有点问题,有很多*.cpp0000644,*.hpp0000644类型的文件,需要把它们全部重命名为*.cpp, *.hpp格式,但是文件数量过多,一一手动修改太慢,又不想去下软件修改,经过研究发现了dos命令中有循环语句for相当好用。

一下是我用来批量修改的命令:

D:\fdo-3.2.3>for /r . %I in (*.cpp0000644) do @ren %~fI %~nI.cpp

D:\fdo-3.2.3>for /r . %I in (*.hpp0000644) do @ren %~fI %~nI.hpp

D:\fdo-3.2.3>for /r . %I in (*.h0000644) do @ren %~fI %~nI.h

D:\fdo-3.2.3>for /r . %I in (*.gif0000644) do @ren %~fI %~nI.gif

D:\fdo-3.2.3>for /r . %I in (*.html0000644) do @ren %~fI %~nI.html

D:\fdo-3.2.3>for /r . %I in (*.vcproj0000644) do @ren %~fI %~nI.vcproj


在命令中,/r 这个参数的意思是选择在那个目录中进行,如果用 /r . 则表示在当前目录树内进行, %I是循环变量, in后的()里表示 %I 的取值集合, do后的表示所执行的dos命令,这里我使用的是重命名ren, %~fI表示要重命名的文件的完整路径, %~nI.cpp表示把该文件重命名为.cpp文件,依此类推。

幸好有dos的这个命令,不然我差点要去自己写一个vc程序了。。。

具体的for命令的用法,可以参看windows的说明,在cmd.exe里输入 for /?即可,也可百度一下。。。
 
2008-03-31 12:31
可以用来Linux交流。 http://yomsey.zhan.cn.yahoo.com
 
2008-03-10 09:14
今天装了ubuntu8.04的测试6版 。有很多地方都很不错。
其实,ubuntu只有一个不太好的地方就是什么新东西一出来就加进去,还没有测试好就发部了。如果能多测试一下。稳定点再放到软件库中,就是一个最完美的Linux发行版 了。嘿嘿。
 
2008-02-05 08:32
在Debian系统中编译Linux内核需要安装的软件包

如有错误,请指正!谢谢1 安装debian基本系统1.1 准备工作首先准备好安装debian的安装空间,不推荐使用PQmagic工具,最好准备好一个大的空闲空间,在大约在5G~20G,当然如果你的硬盘足 够大,debian所占空间大小根据硬盘大小和使用情况来定。

1.2选择安装方式1.2.1光盘安装下载安装光盘:

如果是用于服务器,可以安装stable,目前stable版本是etch,也就是debian4.0

下载地址1:http://debian.cn99.com/debian-cd/etch/

下载地址2:http://www.debian.org/CD/http-ftp/

普通用户使用,可以安装testing,debian的testing版本已经足够稳定,目前testing版本是lenny

下载地址:http://cdimage.debian.org/cdimage/weekly-builds/

可以选择使用安装光盘的第一张CD-1.iso ,或是使用netinst.iso。选择其一即可,下载光盘映像文件后刻盘,推荐使用alcohol 120% 烧录光盘映像

1.2.2硬盘+cd1.iso安装下载需要的文件:vmlinuz、initrd、grub4dos和 安装光盘cd1的iso文件

vmlinuz下载地址:http://people.debian.org/%7Ejoeyh/d-i/images/daily/hd-media/vmlinuz

initrd 下载地址:http://people.debian.org/%7Ejoeyh/d-i/images/daily/hd-media/initrd.gz

grub4dos下载地址1:http://sourceforge.net/projects/grub4dos/

grub4dos下载地址2:ftp://pxe.ustc.edu.cn/linux/GRUB4DOS/

安装光盘1的iso文件下载地址和 光盘安装部分的相同

如果你原先的操作系统是Linux,且已经安装的GRUB,则无需下载grub4dos,当机器启动,进入grub界面时,按c键进入grub命令模式

如果你原先的操作系统是Windows,则需作如下修改:

将压缩包里面的grldr 和 boot/ 文件夹放到 c:\下面 。编辑 c:\boot.ini 在最后一行添加:

C:\GRLDR="GRUB for DOS"

在一个fat32分区上面(如 d:\)建立一个boot文件夹,把下载的vmlinuz 和 initrd.gz 放 到里面。把下载的iso文件放到f:\下面。

重 启电脑,选择GRUB,按C 键进入 GRUB> 命令模式, 输入 root (hd0, 按下TAB 键,看看你的FAT分区是哪个,比如我的是 (hd0,4) , 回车。 输入 kernel /boot/vmlinuz 回车 , 输入 initrd /boot/initrd.gz 回车 。 途中是可以用TAB补全的。

这样就可以安装debian了

1.2.3硬盘+网络安装下载需要的文件:linux、initrd、grub4dos

下载地址:推荐公网用户在http://debian.cn99.com/debian/dists/lenny/main/installer- i386/current/images/netboot/debian-installer/i386/下载linux和initrd两个文件

教育网用户在ftp://debian.ustc.edu.cn/debian/dists/testing/main/installer- i386/current/images/netboot/debian-installer/i386下载linux和initrd两个文件

grub4dos的下载地址同二、硬盘+cd1.iso安装部分

grub启动设置同安装方法二,在此不再赘述。

在一个fat32分区上面(如 D:\)建立一个boot文件夹,把下载的linux和 initrd.gz 放到里面

进入grub之后,按屏幕下部的操作提示来,比如按c进入commond界面,输入

grub>kernel (hd0,#)/boot/linux root=/dev/ram ramdisk_size=256000 devfs=mount,dall

注: 在这个地方(hd0,#)表示boot文件夹所在的分区,e.g.:(hd0,0)表示主分区的第一个,对应windows的C盘,(hd0,4)表示逻 辑分区的第一个,一般情况下,(hd0,4对应windows下的D盘,(hd0,5)应windows下的E盘,往下类推。

grub>initrd (hd0,#)/debian/initrd.gz

grub>boot

开始安装debian,两个加起来大约5M的文件就能安装起来一个debian,很神奇吧!而且好处是可以直接安装最新版本的包,而如果光盘安装则要在安装之后运行

apt-get update

apt-get dist-upgrade1.3 安装1.3.1 开始选择ENGLISH,选中文的话他将自动安装 zhcon 和 unicon

1.3.2 在国家选项中选择 other中的 asia \ china (中国)

1.3.3 然后是配置IP 地址 ,这个每个人都不同,根据自己的情况来 。

1.3.4 分区要小心,不要选择 自动,而要选手动,推荐这样分, 100M /boot 2x内存大小 swap 剩下的 /

1.3.5 安装源自己选。我使用cn99的源。安装如果硬盘网络安装,在选择源时,手动输入debian.ustc.edu.cn 对光盘安装,同样可以选择http方式,输入http://debian.cn99.com/debian/ 或者手动编辑sources.list添加你的源。我的sources.list文件如下:

deb http://debian.cn99.com/debian/ etch main

deb-src http://debian.cn99.com/debian/ etch main

deb ftp://debian.ustc.edu.cn/debian testing main non-free contrib

deb-src ftp://debian.ustc.edu.cn/debian testing main non-free contrib

deb ftp://debian.ustc.edu.cn/debian-security testing/updates main

deb http://security.debian.org/ etch/updates main contrib

deb-src http://security.debian.org/ etch/updates main contrib

1.3.6 在tasksel选择里面不要选任何东西。

1.3.7 在安装完GRUB后不要立即点continue 重启 ,而是按alt+F2 进入SHELL 执行 rm -f /target/etc/adjtime 。 这样作的目的是不让新系统在本地时间的基础上偏移 +8 。不然系统时间会快8小时。

如果你没做这步的话,那你在进入新系统后再删除,或者执行 hwclock --hwtosys --localtime 。

另外如果在安装过程中连接security.debian.org,且你的网络连接不上,可以ctrl+alt+F2另开一个终端,ps -e 查看进程,kill掉apt-get的进程号,否则可能要你连接十多分钟才能放弃连接。

2 基本配置2.1 配置locale#dpkg-reconfigure locales

选 择你要用的locale,比如我选择了 en_US.UTF-8 zh_CN.GB2312 zh_CN.UTF-8 zh_CN.GB18030 zh_CN.GBK ,回车,选择你的系统默认locale 我选择的en_US.UTF-8.如果你想在控制台下使用中文请安装zhcon,下面讲怎么安装

2.2 更新下源

#apt-get update

#apt-get upgrade

更新系统要用#apt-get dist-upgrade

2.3 安装localepurge

#apt-get install localepurge在 对话框中选择你要保留使用的locale .默认情况下它已经选好了你现前设置的那些locale,所以直接回车。当然你也可以 dpkg-reconfigure localepurge 进行详细的配置。 现在执行localepurge 这步将清除你用不着的locale,让他们释放你的磁盘空间。以后你不管安装什么软件,它都将自动帮你清除那些没用的locale。

2.4 安装VIM编辑器#apt-get install vim

2.5 安装rcconf (服务管理器)

#apt-get install rcconf

以后你可以通过rcconf来管理你要启动的服务。

2.6 reboot 重启

3. 安装桌面系统

3.1 安装x-window

#apt-get install x-window-system x-window-system-core

3.2 重新配置

# dpkg-reconfigure xserver-xorg

择你的显卡驱动,不清楚的话选vesa。后面是一些简单的键盘阿,鼠标阿配置。可以按默认的。

3.3 先安装基本声音系统。 alsa

#apt-get install alsa-base alsa-utils

执行 alsaconf 一路回车。 再执行alsa-mixer 设置音量。M键取消静音。

测试 cat /dev/urandom > /dev/dsp 你将会听到非常好听的噪音,恭喜你,你的声卡工作了。

ctrl+c 终止它,当然你喜欢它的话,可以不那么做^_^

3.4 安装hal (硬件抽象层)、pmount (gnome下自动挂载)以实现你的移动设备(usb)自动挂载。

#apt-get install hal pmount

它将会自动安装dbus (信息总线)以实现hal与gnome应用程序通信,实现设备自动发现。

3.5安装窗口管理器

可以选择gnome,kde它们都是一大堆工具的集合,上手容易

#apt-get install gnome

or

#apt-get install kde

低配置的老爷机可以选择FVWM,不过配置起来比较麻烦,

#apt-get install fvwm libstroke0 menu

创建~/.xsession

写入

exec fvwm

重启就能够用fvwm了,

我也没有用过,可以参考李雪白写的fvwm配置文件http://home.ustc.edu.cn/~lixuebai/GNU/FVWM.html

如果嫌自己配置麻烦,可以去http://sourceforge.net/projects/fvwm-themes 下载fvwm主题的deb包来安装,有好多个主题可以选择,都蛮pp的。修改~/.xsession

在末尾添加:

exec fvwm-themes-start

3.5 把安装时建立用户加入sudoers

#visudo

在 root ALL=(ALL) ALL 下面一行加入

%adm ALL=(ALL) ALL

然后执行 gpasswd -a username adm

如我的是 gpasswd -a eric adm

3.6 自动动挂载windows分区

编辑 /etc/fstab

#vim /etc/fstab

/dev/sda1 /media/sda1 vfat utf8,umask=000,user,noauto 0 0

/dev/sda2 /media/sda2 vfat utf8,umask=000,user,noauto 0 0

/dev/sda3 /media/sda3 vfat tf8,umask=000,user,noauto 0 0

/dev/sda5 /media/sda5 vfat utf8,umask=000,user,noauto 0 0

象上面这样加

如我的sata 的c:\ 是vfat格式 那么就这样

/dev/sda1 /media/sda1 vfat utf8,umask=000,user,noauto 0 0

我的sata 的e:\是fat32 那么就这样

/dev/sda5 /media/sda5 vfat utf8,umask=000,user,noauto 0 0

保存

建立挂载点 mkdir /media/sda1 - 5 你有几个建立几个

测试

mount /dev/sda1

mount /dev/sda2

.........

每个都测试下,不然启动不了系统。

注:mount用法小结

fat32的分区

mount -t vfat -o codepage=936,iocharset=utf8 /dev/hda5 /mnt/x

ntfs的分区

mount -t ntfs -o iocharset=utf8 /dev/hda5 /mnt/x

iso文件

mount -o loop /abc.iso /media/cdrom

软盘

mount /dev/fd0 /media/floppy

USB闪存

mount /dev/sda1 /media/cdrom

cd

mount -t iso9600 -o loop /dev/cdrom /media/cdrom

DVD

mount -t iso9660 /dev/dvd /media/cdrom或mount -t udf /dev/dvd /media/cdrom

3.7 安装输入法

你喜欢小企鹅输入法

apt-get install fcitx

你喜欢scim输入法

#apt-get install scim-pinyin

如果你需要其他的输入 法

#apt-get install scim-tables

设置,像我一样偷懒的话

#apt-get install im-switch执行:

im-switch -s fcitx



im-switch -s scim

或者自己建立 /etc/X11/Xsession.d/80im-switch

内容如下

export XMODIFIERS="@im=fcitx"

fcitx &

或者把fcitx 改成 scim

scim -d

4 字体美化

推荐文泉译

#apt-get install xfonts-wqy

或是使用:VeraSansYuanTi

方法一

#wget -c http://download.ubuntu.org.cn/software/VeraSansYuanTi.tar.gz

解压缩之后把八个VeraSansYuanTi放到/usr/share/fonts中

然后在/usr/share/fonts/ 运行

# fc-cache -fv

方法二

#wget -c http://download.coolcode.cn/vera-sans-yuanti.tar.gz

这个包中 ttf-vera-sans-yuanti 目录下为字体文件,把该目录下的文件连同该目录一起复制到 /usr/share/fonts/truetype/ 目录下。接着在 /usr/share/fonts/truetype 执行

#fc-cache -fv

然 后把 local.conf 文件复制到 /etc/fonts/ 目录下,把 gtkrc.zh_CN 和 gtkrc.zh_CN.utf-8 文件复制到 /etc/gtk/ 目录下。最后修改 /etc/X11/xorg.conf 文件,把字体路径加入到 Section “Files” 中:

FontPath "/usr/share/fonts/truetype/ttf-vera-sans-yuanti"

注意这里一定要把 FontPath “/usr/share/fonts/truetype/ttf-vera-sans-yuanti” 加在最前面。

5 安装各种工具

5.1 编辑器emacs vim

集成于emacs的几个包:

emacs-wiki 用于写wiki

mule-ucs 字库

emms 调用mpg321听歌

mew 收信

emacs的配置文件~/.emacs见我的emacs页面

vim语法加亮,把 "syntax enable" 命令加入到/etc/vim/vimrc文件中.

#apt-get install emacs emacs-wiki mule-ucs emms mew

5.2 terminal 使用rxvt-unicode

配置文件~/.Xresources内容:

! my rxvt setting

Rxvt.background:black

Rxvt.foreground:green

Rxvt.colorBD:yellow

Rxvt.colorUL:white

Rxvt.multichar_encoding:gb2312

Rxvt.scrollBar:True

Rxvt.scrollBar_right:True

Rxvt.scrollBar_floating: False

Rxvt.scrollstyle: next

Rxvt.saveLines:1500

Rxvt.color0:black

Rxvt.color1:red

Rxvt.color2:#3a5da3

Rxvt.color3:#4b76cc

Rxvt.color4:RoyalBlue4

Rxvt.color5:magenta

Rxvt.color6:#a1b5dd

Rxvt.color7:#8a95aa

Rxvt.color8:#616668

Rxvt.color9:#075982

Rxvt.color10:#0f82bc

Rxvt.color11:#13a9f4

Rxvt.color12:SkyBlue2

Rxvt.color13:#63c2f2

Rxvt.color14:#6caccc

Rxvt.color15:#dbeff9

Rxvt.font:8x16

Rxvt.mfont:-misc-simsun-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0

Rxvt.menu:/etc/X11/rxvt.menu

Rxvt.preeditType:Root

修改完资源文件后,只要运行

xrdb .Xresources

就能使配置生效了

5.3 pdf文档

使用PDF

#apt-get install acroread acroread-plugins acroread-chfonts

5.4 chm

用xchm或者chmsee,

另外据说firefox可以安装一个chm reader的插件。

5.5 字典,用stardict

在uo源中

deb http://debian.ustc.edu.cn/debian-uo/ sid marillat rareware misc ustc

deb-src http://debian.ustc.edu.cn/debian-uo sid marillat rareware misc ustc

stardict-longman Longman Dictionary

stardict-oald Oxford Advanced Learner's Dictionary

stardict-cced Collins Cobuild English Dictionary

stardict-gaojihanyudacidian 高级汉语大词典

stardict-guojibiaozhunhanzidacidian 国际标准汉字大辞典

stardict-kdic-computer-gb 计算机词汇

stardict-langdao-ce-gb 朗道汉英字典5.0

stardict-langdao-ec-gb 朗道英汉字典5.0

stardict-oxford-gb 牛津现代英汉双解词典

stardict-powerword2007-pw7ecdz [七国语言]英汉电子大词典

stardict-powerword2007-pw7ecdzg [七国语言]英汉电子工程大词典

stardict-powerword2007-pw7ecwl [七国语言]英汉物理大词典

stardict-powerword2007-pw7ecxx [七国语言]英汉信息大词典

stardict-wikipedia-zhwiki 中文维基百科

真人发音

去官方网站http://stardict.sourceforge.net/ 下载真人发音库WyabdcRealPeopleTTS.tar.bz2 然后把它解压(tar -jxvf),文件夹copy到/usr/share目录.

#apt-get install stardict stardict-longman stardict-oald stardict-cced stardict-gaojihanyudacidian stardict-guojibiaozhunhanzidacidian stardict-kdic-computer-gb stardict-langdao-ce-gb stardict-langdao-ec-gb stardict-oxford-gb stardict-powerword2007-pw7ecdz stardict-powerword2007-pw7ecdzg stardict-powerword2007-pw7ecwl stardict-powerword2007-pw7ecxx stardict-wikipedia-zhwiki

5.6 浏览器

用w3m或者lynx,或者图形化的工具firefox(在debian中叫做iceweasel)。

firefox用插件:

adblock_plus

顾名思义,广告拦截插件。我感觉这个是Firefox使用中最重要的插件了,因为我们在浏览网站时候最痛恨的就是那些乱七八糟的广告了。定义好正则表达式(更好地精简过滤名单,运行起来更快),基本上可以实现页面无广告了。最新版本的可以订阅过滤规则了。

all-in-one_gestures

手势功能,通过鼠标右键在标签页画出手势来进行网页的常用操作,比如新开窗口,比如关闭页面,切换页面…… 非常迅速和方便。

download_manager_tweak

增强Firefox下载管理器

forecastfox

天气预报插件

super_dragandgo

拖动一个链接到页面任何空白处,就可以新开一个标签打开链接,很方便吧^_^

tabbrowser_extensions

增强标签页的功能,非常好的工具,可以实现定义单窗口,定义每个标签的宽度…… 许多功能。

xyzproxy

这 是一个proxy管理插件。我们虽然可以在Firefox的工具->选项->基本信息中修改代理,但是毕竟比较麻烦。这个插件可以迅速切换代 理和非代理状态,同时可以迅速切换不同代理,当然首先自己要准备好一个代理列表。 sci.ustc.edu.cn就经常有代理列表更新的,不过比较麻烦的是那里的代理表不能单排的。

5.7 即时通讯工具

gaim 可以支持qq,msn,gtalk...

gaim已经改名成pidgin,

qq可以选用eva

在/etc/apt/source.list增加源

deb http://planet.time.net.my/TechnologyPark/evadeb ./

#apt-get install gaim eva

IRC聊天 使用xchat

5.8 下载工具 lfpt wget

#apt-get install lftp wget

lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。

命令行语法

要看lftp的命令行语法,只要在shell中输入lftp --help

lftp [OPTS]

`lftp' 是在 rc 文件执行后 lftp 执行的第一个命令

-f 执行文件中的命令后退出

-c 执行命令后退出

--help 显示帮助信息后退出

--version 显示 lftp 版本后退出

其他的选项同 `open' 命令

-e 在选择后执行命令

-u [,] 使用指定的用户名/口令进行验证

-p 连接指定的端口

主机名, URL 或书签的名字

如果在命令行中输入的站点名称,lftp将直接登录站点,比如

[yhj@ccse-yhj yhj]$ lftp ftp://dsec.pku.edu.cn:27/incoming/

... ... (此处略去站点登录信息)

cd 成功,当前目录=/incoming

lftp dsec.pku.edu.cn:/incoming>

如果在命令行不输入站点名称,则必须在进入到lftp界面后用open命令打开

[yhj@ccse-yhj yhj]$ lftp

lftp :~> open ftp://dsec.pku.edu.cn:27/incoming/

cd 成功,当前目录=/incoming

lftp dsec.pku.edu.cn:/incoming>

常用命令

* 下载单个文件和一组文件,断点续传用-c参数

lftp dsec.pku.edu.cn:/> get -c ls-lR.txt

lftp dsec.pku.edu.cn:/> mget *.txt

* 镜像(反镜像即上传)一个目录,可以用多个线程并行镜像一个目录(--parallel=N)

lftp dsec.pku.edu.cn:/> mirror incoming local_name

lftp dsec.pku.edu.cn:/> mirror -R local_name

lftp dsec.pku.edu.cn:/> mirror --parallel=3 incoming local_name

* 多线程下载,类似网络蚂蚁的功能;缺省是5个线程

lftp dsec.pku.edu.cn:/> pget -n 4 ls-lR.txt

* 后台任务管理

缺省情况下,按 Ctrl+z,正在执行的任务将转为后台执行,也可以 在命令行末尾加&符号使任务在后台执行。用jobs命令可以查看所 有的后台进程。用queue命令可以排队新的任务。如果退出lftp是

还有任务在后台执行,lftp将转为后台执行。

* 其它用法

lftp支持类似bash的管道操作,例如用下面的命令可以将ftp服务 器上的特定目录下(也可以是整个站点)所有文件的大小存到本地的

文件ls.txt中

lftp dsec.pku.edu.cn:/> du incoming > ls.txt

相关文件

/etc/lftp.conf

全局配置文件,实际位置依赖系统配置文件目录,可能在/etc,也可能在/usr/local/etc

~/.lftp/rc, ~/.lftprc

用户配置文件,将在/etc/lftp.conf之后执行,所以这里面的设置会覆盖/etc/lftp.conf中的设置。

lftp 缺省不会显示 ftp 服务器的欢迎信息和错误信息,这在很多时候不方便,因为你有可能想知道这个服务器到底是因为没开机连不上,还是连接数已满。如果是这样,你可以在 ~/.lftprc 里写入一行

debug 3

就可以看到出错信息了。

更多的配置选项请查man手册或在lftp界面内用命令 set -a 获得。

~/.lftp/log

当lftp转为后台非挂起模式执行时,输出将重定向到这里

~/.lftp/bookmarks

这是lftp存储书签的地方,可以lftp查看bookmark命令

~/.lftp/cwd_history

这个文件用来存储访问过的站点的工作目录

wget

wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS 和FTP协议,可以使用HTTP代理.

所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统, wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。

wget 可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作"递归下载"。在递归下载的时候,wget 遵循Robot Exclusion标准(/robots.txt). wget 可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。

wget 非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务 器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

wget的常见用法

wget的使用格式

Usage: wget [OPTION]... [URL]...

* 用wget做站点镜像:

wget -r -p -np -k http://dsec.pku.edu.cn/~usr_name/

# 或者

wget -m http://dsec.pku.edu.cn/~usr_name/

* 在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载

wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi -o down.log &

# 或者从filelist读入要下载的文件列表

wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft -i filelist.txt -o down.log &

上面的代码还可以用来在网络比较空闲的时段进行下载。我的用法是:在mozilla中将不方便当时下载的URL链接拷贝到内存中然后粘贴到文件filelist.txt中,在晚上要出去系统前执行上面代码的第二条。

* 使用代理下载

wget -Y on -p -k https://sourceforge.net/projects/wvware/

代理可以在环境变量或wgetrc文件中设定

# 在环境变量中设定代理

export PROXY=http://211.90.168.94:8080/

# 在~/.wgetrc中设定代理

http_proxy = http://proxy.yoyodyne.com:18023/

ftp_proxy = http://proxy.yoyodyne.com:18023/

wget各种选项分类列表

* 启动

-V, --version 显示wget的版本后退出

-h, --help 打印语法帮助

-b, --background 启动后转入后台执行

-e, --execute=COMMAND 执行`.wgetrc'格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc

* 记录和输入文件

-o, --output-file=FILE 把记录写到FILE文件中

-a, --append-output=FILE 把记录追加到FILE文件中

-d, --debug 打印调试输出

-q, --quiet 安静模式(没有输出)

-v, --verbose 冗长模式(这是缺省设置)

-nv, --non-verbose 关掉冗长模式,但不是安静模式

-i, --input-file=FILE 下载在FILE文件中出现的URLs

-F, --force-html 把输入文件当作HTML格式文件对待

-B, --base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀

--sslcertfile=FILE 可选客户端证书

--sslcertkey=KEYFILE 可选客户端证书的KEYFILE

--egd-file=FILE 指定EGD socket的文件名

* 下载

--bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)

-t, --tries=NUMBER 设定最大尝试链接次数(0 表示无限制).

-O --output-document=FILE 把文档写到FILE文件中

-nc, --no-clobber 不要覆盖存在的文件或使用.#前缀

-c, --continue 接着下载没下载完的文件

--progress=TYPE 设定进程条标记

-N, --timestamping 不要重新下载文件除非比本地文件新

-S, --server-response 打印服务器的回应

--spider 不下载任何东西

-T, --timeout=SECONDS 设定响应超时的秒数

-w, --wait=SECONDS 两次尝试之间间隔SECONDS秒

--waitretry=SECONDS 在重新链接之间等待1...SECONDS秒

--random-wait 在下载之间等待0...2*WAIT秒

-Y, --proxy=on/off 打开或关闭代理

-Q, --quota=NUMBER 设置下载的容量限制

--limit-rate=RATE 限定下载输率

* 目录

-nd --no-directories 不创建目录

-x, --force-directories 强制创建目录

-nH, --no-host-directories 不创建主机目录

-P, --directory-prefix=PREFIX 将文件保存到目录 PREFIX/...

--cut-dirs=NUMBER 忽略 NUMBER层远程目录

* HTTP 选项

--http-user=USER 设定HTTP用户名为 USER.

--http-passwd=PASS 设定http密码为 PASS.

-C, --cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).

-E, --html-extension 将所有text/html文档以.html扩展名保存

--ignore-length 忽略 `Content-Length'头域

--header=STRING 在headers中插入字符串 STRING

--proxy-user=USER 设定代理的用户名为 USER

--proxy-passwd=PASS 设定代理的密码为 PASS

--referer=URL 在HTTP请求中包含 `Referer: URL'头

-s, --save-headers 保存HTTP头到文件

-U, --user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.

--no-http-keep-alive 关闭 HTTP活动链接 (永远链接).

--cookies=off 不使用 cookies.

--load-cookies=FILE 在开始会话前从文件 FILE中加载cookie

--save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中

* FTP 选项

-nr, --dont-remove-listing 不移走 `.listing'文件

-g, --glob=on/off 打开或关闭文件名的 globbing机制

--passive-ftp 使用被动传输模式 (缺省值).

--active-ftp 使用主动传输模式

--retr-symlinks 在递归的时候,将链接指向文件(而不是目录)

* 递归下载

-r, --recursive 递归下载--慎用!

-l, --level=NUMBER 最大递归深度 (inf 或 0 代表无穷).

--delete-after 在现在完毕后局部删除文件

-k, --convert-links 转换非相对链接为相对链接

-K, --backup-converted 在转换文件X之前,将之备份为 X.orig

-m, --mirror 等价于 -r -N -l inf -nr.

-p, --page-requisites 下载显示HTML文件的所有图片

* 递归下载中的包含和不包含(accept/reject)

-A, --accept=LIST 分号分隔的被接受扩展名的列表

-R, --reject=LIST 分号分隔的不被接受的扩展名的列表

-D, --domains=LIST 分号分隔的被接受域的列表

--exclude-domains=LIST 分号分隔的不被接受的域的列表

--follow-ftp 跟踪HTML文档中的FTP链接

--follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表

-G, --ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表

-H, --span-hosts 当递归时转到外部主机

-L, --relative 仅仅跟踪相对链接

-I, --include-directories=LIST 允许目录的列表

-X, --exclude-directories=LIST 不被包含目录的列表

-np, --no-parent 不要追溯到父目录

问题

在递归下载的时候,遇到目录中有中文的时候,wget创建的本地目 录名会用URL编码规则处理。如"天网防火墙"会被存为

"%CC%EC%CD%F8%B7%C0%BB%F0%C7%BD",这造成阅读上的极大不方便。

5.8 音乐 用mpg321或者beep media player

给beep-media-player打补丁

libmac2_3.99+update4+build3-0.0_i386.deb

bmp-mac_0.1.0.1-0.0_i386.deb

用来播放ape文件

这两个包需要搜索查找,或者可能在unstable源中。你也可以到科大ftp上搜索引擎上下来自己安装

FTP搜索引擎 - Tooooold

aptitude安装beep-media-player-dev

你也可以在http://www.winamp.com/skins/ 下载更多皮肤并将它们放到"~/.bmp/Skins"供BMP使用。

加载WIMAMP的PRESETS,

按“presets”按钮,选“导入”选项,选中winamp安装目录下的winamp.q1,确定,以后不同音乐可以切换不同类型的equalizer 至于winamp.ql需要网络上搜索下载。

5.9 电影,用mplayer

安装w32codecs

同时安装mozilla-mplayer,这是用于在mozilla firefox中播放多媒体

mplayer在uo源中

deb http://debian.ustc.edu.cn/debian-uo/ sid marillat rareware misc ustc

deb-src http://debian.ustc.edu.cn/debian-uo sid marillat rareware misc ustc

让mplayer 支持srt格式的字幕,首先复制一个中文ttf字体文件到 ~/.mplayer/ 目录下,并改名为 subfont.ttf ;然后在gmplayer的选项(Preferences)-> Subtitle & OSD 中将 Encoding 项选为“Simplified Chinese charset (CP936)”。如果你还使用命令行播放电影,还需要在 ~/.mplayer/config 文件中加上这么一行:

subcp=cp936

如果仍然不能显示字幕,请看看字幕文件名和电影文件名是否相配:如果avi文件是 movie.avi的话,字幕文件名应该是movie.srt。

让mplayer的画面随窗口大小自动缩放。

修改 ~/.mplayer/config 文件,加上这么一行:

zoom=yes。

若gmplayer出现“声音设备”的错误,在其选项中的声音项,修改声音设备,比如从alsa到oss或着esd.

5.10 图片,gthumb用来看图,GIMP用来处理图片

#apt-get install gthumb gimp

5.11 数值分析,octave,相当于matlab

5.12 数学计算,maxima,相当于mathematica

如果你需要安装matlab和mathematica,可以在源中增加

deb ftp://202.38.73.198/debian sid foo

5.13 电路图软件 eagle

5.14 绘图软件 dia

5.15 java开发 jdk

安装sun-java6-jdk,当然习惯1.5版的可以安装sun-java5-jdk

5.16 截屏工具 scrot

5.17 bbs ,用qterm

5.18 远程访问 ssh

5.19 安装配置samba

# apt-get install samba smbclient

系统会问你,请参考这些答案:

用debconf配置samba吗?Yes。

输入工作组名,或者域名:workgroup。

使用口令加密?Yes。

以什么方式运行samba?我们选择默认的daemons方式,让他在后台监听。

创建samba口令库?Yes。

修改/etc/samba/smb.conf 文件

security = share 不需要用户名和密码

security = user 需要用户名和密码

[iso]

comment = Eric's iso dir

path = /home/eric/iso

writable = yes

valid users = eric

要是修改后的smb.conf生效,需要重新启动samba:

# /etc/init.d/samba restart

创建用户

在我们创建用户之前,没有人能够访问samba服务器,就是说,在windows平台上,无论用什么用户名和口令,都无法访问网上邻居里面的debian这台机器。

我们需要在/etc/samba/目录下面,生成一个文件,名字叫:smbpasswd:

# touch /etc/samba/smbpasswd

然后,使用smbpasswd命令,添加samba用户:

# smbpasswd -a eric

New SMB password:

Retype new SMB password:

这时,eric就被写进了/etc/samba/smbpasswd文件,eric就可以从windows访问samba了。

Linux客户端终端(命令行)访问samba

linux客户端要连接samba/windows文件服务器时,需使用smbmount或mount指令:

smbmount //sambaserver/d /mnt/d -o username=aaa,password=bbb

smbmount //sambaserver/d /mnt/d -o username=aaa%bbb

mount -t smbfs -o username=aaa,password=bbb //sambaserver/d /mnt/d

mount -t smbfs -o username=aaa%bbb //sambaserver/d /mnt/d

smbclient //sambaserver/d -U username%password

注意:

1. 指定uid或者gid参数,也可以指定用户的身份(uid=后面可接uid号或者用户名),如:

smbmount //test/d /mnt/d -o uid=grind

2. smbmount也可以写作mount.smbfs,这是一个符号链接;

3. smbmount的参数必须写在最后,而mount的参数位置可以变化;

4. 由于//sambaserver/d格式可以表明是要mount上smbfs,所以mount的-t smbfs参数可以省掉;

5. 如果命令行中不加入密码,下一行中系统会提示你输入;

6. smbclient成功后,会出现ftp类似的界面,请仿照ftp进行

5.19 Debian 参考手册

最新官方版本于 Debian 的 debian-reference-zh-cn 软件包中

6 声卡和显卡

6.1 声卡

安装alsa-base,alsa-oss,alsa-utils,aumix,xmix 然后配置

$ su

# alsaconf

选中你的声卡,就可以了

6.2显卡

6.2.1ATI显卡驱动安装

到http://ati.amd.com/support/driver.html下载符合你显卡的驱动程序

安装需要的软件包

#apt-get install build-essential debhelper bzip2 fakeroot

#apt-get install module-assistant /*m-a tool*/

#apt-get install dh-make debconf libstdc++5 linux-headers-$(uname -r)

Create the .deb packages: (change accordingly depending on which flavor you're running)

方式一

Code:

# sh ati-driver-installer-8.36.5-x86.x86_64.run --buildpkg Debian/testing

Install the .deb packages in the current directory:

Code:

# dpkg -i package.deb

方式二

$ cd ./fglrx/

$ chmod +x ati-driver-installer-8.36.5-x86.x86_64.run

$ ./ati-driver-installer-8.36.5-x86_64.run --extract fglrx-tmp

$ cd fglrx-tmp

$ su (...and enter root password)

# ./packages/Debian/ati-packager.sh --buildpkg sid

# cd ..

# dpkg -i fglrx-amdcccle_8.36.5-1_amd64.deb

# dpkg -i fglrx-driver_8.36.5-1_amd64.deb

# dpkg -i fglrx-kernel-src_8.36.5-1_amd64.deb

reboot

# m-a prepare

# m-a a-i fglrx

# modprobe -v fglrx

# dpkg-reconfigure xserver-xorg

Then I edited the newly written xorg.conf file to use driver "fglrx" instead of "ati," rebooted, and everything worked.

test method:

eric@dedo:~$ fglrxinfo

display: :0.0 screen: 0

OpenGL vendor string: ATI Technologies Inc.

OpenGL renderer string: ATI MOBILITY RADEON X300

OpenGL version string: 2.0.6458 (8.36.5)

eric@dedo:~$ fgl_glxgears

Using GLX_SGIX_pbuffer

1461 frames in 5.0 seconds = 292.200 FPS

1467 frames in 5.0 seconds = 293.400 FPS

1513 frames in 5.0 seconds = 302.600 FPS

1516 frames in 5.0 seconds = 303.200 FPS

Note: If you're using Lenny, substitute "lenny" for "sid" in the build-packages step.

N卡的驱动安装较为简单,不再赘述

6.2.1提高刷新率

如果显示器是液晶的就不需要了。如果CRT的,可能需要改为85Hz,则

# vim /etc/X11/xorg.conf

修改其中一段,可以为

Section "Monitor"

Identifier "Generic Monitor"

HorizSync 30-70

VertRefresh 60-100

Option "DPMS"

EndSection

这仅仅是给出频率上限,下面需要给出

使用gtf,页面在http://sh.nu/nvidia/gtf.php, 输入分辨率和刷新率后即可得到相应配置:

# 1024x768 @ 85.00 Hz (GTF) hsync: 68.60 kHz; pclk: 94.39 MHz

Modeline "1024x768_85.00" 94.39 1024 1088 1200 1376 768 769 772 807 -HSync +Vsync

放到上面"DPMS"的下一行

保存退出。

7 内核编译7.1 安装所要用到的工具包#apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential udev debhelper

注:

传统方式直接在console中编译官方内核,需要以下软件包

bin86 - 16-bit assembler and loader

diff - File comparison utilities

libc6-dev - GNU C Library: Development Libraries and Header Files

libncurses5-dev - Developer's libraries and docs for ncurses

patch - Apply a diff file to an original

使用2.4.x内核的图形界面配置程序(make xconfig),还需要

tk8.4 - Tk toolkit for Tcl and X11, v8.4 - run-time files

使用2.6.x内核的Qt图形界面配置程序(make xconfig),还需要

libqt3-mt-dev - Qt development files (Threaded)

注:现在好像可以用QT4

使用2.6.x内核的GTK图形界面配置程序(make gconfig),还需要

libgtk2.0-dev - Development files for the GTK+ library

如果您想制作内核的deb包,还需要

debianutils - Miscellaneous utilities specific to Debian

kernel-package - A utility for building Linux kernel related Debian package

ksymoops - Linux kernel oops and error message decoder

切换到新内核的目录

#cd linux-2.6.X.X

为了节省时间,请执行以下命令从现有内核中获得配置

#make oldconfig

执行完此条命令后,会根据新老内核的差异情况,询问你一些问题,如果不确定的话请都是用默认(直接按回车)。

以上步骤完成后,执行内核配置程序

#make menuconfig

如果你的Debian有X的话,也可以使用 make xconfig 来进行内核的配置。请自行根据实际情况进行配置,不确定的话请保持默认。

在 Security Options 中,选择 Grsecurity 并将其设置到 medium。然后根据grsecurity的官方推荐,请在 Security Options -> PaX -> PaX Control 中,将 MAC system integration 设置为 [None] 。

至此,内核的配置就算完成了。请按 ESC 多次后退出内核配置页面(在系统询问是否要保存新内核的配置时,当然要选择yes)。

执行以下命令进行新内核的生成!

#make-kpkg clean

#fakeroot make-kpkg --initrd --append-to-version=XXXXX --revision=1.0 kernel_image kernel_headers

fakeroot 的作用是在内核的生成过程中暂时性获取root权限。如果你直接是用root帐号操作的话,可以省略fakeroot。–append-to- version定义的是内核的软件包名字,类似 kernel-image-2.6.11.7-XXXXX 这样。而 –revision定义的是软件包的版本。

现在系统会开始进行新内核的生成,屏幕上会有许多文字闪过。请注意,如果生成过程中出现错误,请执行 make clean 后,用 make menuconfig 重新配置内核。一般都是仔细看错误信息,找到出错的模块,然后将其去除。

内核顺利生成完毕后,会在/usr/src目录下产生一个 deb 包。例如 kernel-image-2.6.11.7-XXXXX_1.0_i386.deb

执行以下命令安装新内核!^_^

#dpkg -i kernel-image-2.6.11.7-XXXXX_1.0_i386.deb

接着Debian会安装新内核并更新Grub的配置文件。重新启动(shutdown -r now)后将会boot到新内核。

8 删除gnome应用程序下的多余菜单

和gnome菜单显示相关的目录有:

/usr/share/applications,

/usr/share/gnome/applications

/usr/share/applications里面都是

以desktop为后缀的文档;对于后者/usr/share/gnome//applications和/etc/X11/applnk/里面是一些目录,它们可以是

Network,

Office,

Graphics,

AudioVideo,

System,

Development,

Utility,

Settings等

一般在这些目录里面也是以desktop为结尾的文件这些文件对应的菜单项一般是让它们在其它里面显示(我想也应该可以在第一级目录里面显示,呵呵没有 试过).对于/usr/share/applications里面的文件,既可在其它里面显示也可在第一级菜单里面显示。

下面来看一下以.desktop结尾的文件的格式,低下是一个模板:

[Desktop Entry]

Name=

Name[zh_CN]=

Icon=

Terminal=

Type=

Categories=Application;;;

Encoding=UTF-8

Comment=

Comment[zh_CN]=

OnlyShowIn=

X-Desktop-File-Install-Version=0.3

对上面的解释:

Name--你原意给程序取的名字

Name[zh_CN]--程序对应local为中文是的名字

Exec要执行的应用程序路径

Icon你想要显示的图标路径

Type程序的种类,一般为Application即可。

下面的Categories是关键,注意上面的几个分号,第一个之前一般为Application即可

把对应程序名称的.desktop文件删掉即可

详细请参考:gnome菜单编辑解决方案

8、一些问题

装好了Debian却找不到more和fdisk命令,来时是因为没有装util-linux包,把此包装上即可:

#apt-get install util-linux

tree命令也是一个不错的工具,也装上吧

#apt-get install tree
 
2008-01-25 20:28
首先要介绍一 下,通常其它操作系统的内核编译是比较繁琐的。然而,由于Debian强大的dpkg软件包管理系统,使得内核的升级、编译也变得容易很多。这篇文章将会 一步一步教你如何编译自己的,带有grsecurity的Linux 2.6内核。Grsecurity是一个Linux的内核补丁,针对Linux内核的某些安全漏洞进行修补以及安全性的增强。


首 先用 apg-get 自动下载并安装一些必要的软件包,包括编译内核需要的kernel-package和ncurses-dev等。如果在内核编译、制作过程中,遇到错误提 示说某个软件包不存在的话,请同样使用 apt-get install 命令进行下载安装。

apt-get install kernel-package ncurses-dev fakeroot wget bzip2 make patch

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.7.tar.bz2
tar -xjf linux-2.611.7.tar.bz2

请到 http://www.kernel.org 查看最新的内核版本。

之后,下载grsecurity。请注意,务必选择与内核版本相应的grsecurity版本。(grsecurity网站)

wget http://www.grsecurity.org/grsecurity-2.1.5-2.6.11.7-200504111924.patch.gz
gunzip grsecurity-2.1.5-2.6.11.7-200504111924.patch.gz

执行以下命令将新内核打上grsecurity补丁

patch -p0 < ./grsecurity-2.1.5-2.6.11.7-200504111924.patch

OK,切换到新内核的目录

cd linux-2.6.11.7

为了节省时间,请执行以下命令从现有内核中获得配置

make oldconfig

执行完此条命令后,会根据新老内核的差异情况,询问你一些问题,如果不确定的话请都是用默认(直接按回车)。

以上步骤完成后,执行内核配置程序

make menuconfig

如果你的Debian有X的话,也可以使用 make xconfig 来进行内核的配置。请自行根据实际情况进行配置,不确定的话请保持默认。

在 Security Options 中,选择 Grsecurity 并将其设置到 medium。然后根据grsecurity的官方推荐,请在 Security Options -> PaX -> PaX Control 中,将 MAC system integration 设置为 [None] 。

至此,内核的配置就算完成了。请按 ESC 多次后退出内核配置页面(在系统询问是否要保存新内核的配置时,当然要选择yes)。

执行以下命令进行新内核的生成!

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=noobu --revision=1.0 kernel_image

fakeroot 的作用是在内核的生成过程中暂时性获取root权限。如果你直接是用root帐号操作的话,可以省略fakeroot。 Cappend-to- version定义的是内核的软件包名字,类似 kernel-image-2.6.11.7-noobu 这样。而 Crevision定义的是软件包的版本。

现在系统会开始进行新内核的生成,屏幕上会有许多文字闪过。请注意,如果生成过程中出现错误,请执行 make clean 后,用 make menuconfig 重新配置内核。一般都是仔细看错误信息,找到出错的模块,然后将其去除。

内核顺利生成完毕后,会在/usr/src目录下产生一个 deb 包。例如 kernel-image-2.6.11.7-noobu_1.0_i386.deb

执行以下命令安装新内核!^_^

dpkg -i kernel-image-2.6.11.7-noobu_1.0_i386.deb

接着Debian会安装新内核并更新Grub的配置文件。重新启动(shutdown -r now)后将会boot到新内核。

用 uname -a 看一下,是不是看到新内核的名字啦?

怎么样,在Debian上重新编译内核是不是很简单很高效呢?
(http://www.fanqiang.com)

原文链接:http://www.noobu.com/0501_debian_custom_kernel.html
 
2008-01-25 03:10

内核简介
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。
想象一下,拥有了内核的源程序对你来说意味着什么?首先,我们可以了解系统是如何工作的。通过通读源代码,我们就可以了解系统的工作原理,这在Windows下简直是天方夜谭。其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。在Windows下是什么情况呢?相信很多人都被越来越庞大的Windows整得莫名其妙过。再次,我们可以对内核进行修改,以符合自己的需要。这意味着什么?没错,相当于自己开发了一个操作系统,但是大部分的工作已经做好了,你所要做的就是要增加并实现自己需要的功能。在Windows下,除非你是微软的核心技术人员,否则就不用痴心妄想了。

内核版本号

由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。Linux的开发采用的是集市模型(bazaar,与cathedral--教堂模型--对应),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(development tree)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发数就体现在源程序的版本号中;源程序版本号的形式为x.y.z:对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数)。到目前为止,稳定树的最高版本是2.2.16,最新发布的Redhat7.0所采用的就是2.2.16的内核;开发树的最新版本是2.3.99。也许你已经发现和多网站上都有2.4.0-test9-pre7之类的内核,但是这并不是正式版本。内核版本的更新可以访问http://www.kernel.org

为什么重新编译内核

Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。
通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。
为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:
l 自己定制编译的内核运行更快(具有更少的代码)
l 系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)
l 不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞
l 将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些

内核编译模式

要增加对某部分功能的支持,比如网络之类,可以把相应部分编译到内核中(build-in),也可以把该部分编译成模块(module),动态调用。如果编译到内核中,在内核启动时就可以自动支持相应部分的功能,这样的优点是方便、速度快,机器一启动,你就可以使用这部分功能了;缺点是会使内核变得庞大起来,不管你是否需要这部分功能,它都会存在,这就是Windows惯用的招数,建议经常使用的部分直接编译到内核中,比如网卡。如果编译成模块,就会生成对应的.o文件,在使用的时候可以动态加载,优点是不会使内核过分庞大,缺点是你得自己来调用这些模块。
内核编译详解

新版本内核的获取和更新

Linux内核版本发布的官方网站是http://www.kernel.org,国内各大ftp上一般都可以找到某些版本的内核。新版本的内核的发布有两种形式,一种是完整的内核版本,另外一种是patch文件,即补丁。完整的内核版本比较大,比如linux-2.4.0-test8.tar.bz2就有18M之多,网速快的用户可以下载使用。完整内核版本一般是.tar.gz(.tgz)文件或者是.bz2文件,二者分别是使用gzip或者bzip2进行压缩的文件,使用时需要解压缩。patch文件则比较小,一般只有几十K到几百K,极少的会超过1M,网速慢的用户可以使用patch文件来升级内核。但是patch文件是针对于特定的版本的,你需要找到自己对应的版本才能使用。
编译内核需要root权限,以下操作都假定你是root用户。请把你需要升级的内核拷贝到/usr/src/下(下文中以2.4.0test8的内核的linux-2.4.0test8.tar.gz为例),命令为

#cp linux-2.4.0test8.tar.gz /usr/src

让我们先来查看一下当前/usr/src的内容,注意到有一个linux的符号链接,它指向一个类似于linux-2.2.14(对应于你现在使用的内核版本号)的目录。首先删除这个链接:

#cd /usr/src
#rm -f linux

现在解压我们下载的源程序文件。如果所下载的是.tar.gz(.tgz)文件,请使用下面的命令:

#tar -xzvf linux-2.4.0test8.tar.gz

如果你所下载的是.bz2文件,例如linux-2.4.0test8.tar.bz2,请使用下面的命令

#bzip2 -d linux-2.4.0test8.tar.bz2
#tar -xvf linux.2.4.0.test8.tar

现在让我们再来看一下/usr/src下的内容,你会发现现在有了一个名为linux的目录,里面就是我们需要升级到的版本的内核的源程序。还记得那个名为linux的链接么?之所以使用那个链接就是防止在升级内核的时候会不慎把原来版本内核的源程序给覆盖掉了。我们也需要同样处理:

#mv linux linux-2.4.0test8
#ln -s linux-2.4.0test8 linux

这样我们也有了一个名为linux的符号链接,就不用担心以后会把它覆盖掉了(也许你会觉得重新建立linux的符号链接没有必要,但实际上这是必不可少的,下文中会有介绍)。如果你还下载了patch文件,比如patch-2.4.0test8,你就可以进行patch操作(下面假设patch-2.4.0test8已经位于/usr/src目录下了,否则你需要先把该文件拷贝到/usr/src下):

#patch -p0 < patch-2.4.0test8

现在,我们已经把内核源程序升级到最新版本了,下面就让我们开始内核编译的旅程吧。

准备工作

通常要运行的第一个命令是:

#cd /usr/src/linux;make mrproper

该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖。由于我们使用刚下载的完整的源程序包进行编译,所以本步可以省略。而如果你多次使用了这些源程序编译内核,那么最好要先运行一下这个命令。
确保/usr/include/目录下的asm、linux和scsi等链接是指向要升级的内核源代码的。它们分别链向源代码目录下的真正的、该计算机体系结构(对于PC机来说,使用的体系结构是i386)所需要的真正的include子目录。如:asm指向/usr/src/linux/include/asm-i386等。若没有这些链接,就需要手工创建,按照下面的步骤进行:

# cd /usr/include/
# rm -r asm linux scsi
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi

这是配置非常重要的一部分。删除掉/usr/include下的asm、linux和scsi链接后,再创建新的链接指向新内核源代码目录下的同名的目录。这些头文件目录包含着保证内核在系统上正确编译所需要的重要的头文件。现在你应该明白为什么我们上面又在/usr/src下"多余"地创建了个名为linux的链接了吧?
配置

接下来的内核配置过程比较烦琐,但是配置的适当与否与日后Linux的运行直接相关,有必要了解一下一些主要的且经常用到的选项的设置。
配置内核可以根据需要与爱好使用下面命令中的一个:

#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)

这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,那么就推荐你使用这个命令,界面如下:

图xconfig_main.jpg

如果你不能使用Xwindow,那么就使用make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了,下图为make menuconfig的界面:


图menuconfig_main.jpg

选择相应的配置时,有三种选择,它们分别代表的含义如下:
  Y--将该功能编译进内核
  N--不将该功能编译进内核
  M--将该功能编译成可以在需要时动态插入到内核中的模块
如果使用的是make xconfig,使用鼠标就可以选择对应的选项。如果使用的是make menuconfig,则需要使用空格键进行选取。你会发现在每一个选项前都有个括号, 但有的是中括号有的是尖括号,还有一种圆括号。 用空格键选择时可以发现,中括号里要么是空,要么是"*",而尖括号里可以是空,"*"和"M"这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。
在编译内核的过程中,最烦杂的事情就是这步配置工作了,很多新手都不清楚到底该如何选取这些选项。实际上在配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响;不需要的功能就不要选;与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。下面就让我们对常用的选项分别加以介绍。
1. Code maturity level options
代码成熟等级。此处只有一项:prompt for development and/or incomplete code/drivers,如果你要试验现在仍处于实验阶段的功能,比如khttpd、IPv6等,就必须把该项选择为Y了;否则可以把它选择为N。

2. Loadable module support
对模块的支持。这里面有三项:

Enable loadable module support:除非你准备把所有需要的内容都编译到内核里面,否则该项应该是必选的。
Set version information on all module symbols:可以不选它。
Kernel module loader:让内核在启动时有自己装入必需模块的能力,建议选上。

3. Processor type and features
CPU类型。内容蛮多的,不一一介绍了,有关的几个如下:

Processor family:根据你自己的情况选择CPU类型。
High Memory Support:大容量内存的支持。可以支持到4G、64G,一般可以不选。
Math emulation:协处理器仿真。协处理器是在386时代的宠儿,现在早已不用了。
MTTR support:MTTR支持。可不选。
Symmetric multi-processing support:对称多处理支持。除非你富到有多个CPU,否则就不用选了。

4. General setup
这里是对最普通的一些属性进行设置。这部分内容非常多,一般使用缺省设置就可以了。下面介绍一下经常使用的一些选项:

Networking support:网络支持。必须,没有网卡也建议你选上。
PCI support:PCI支持。如果使用了PCI的卡,当然必选。
PCI access mode:PCI存取模式。可供选择的有BIOS、Direct和Any,选Any吧。
Support for hot-pluggabel devices:热插拔设备支持。支持的不是太好,可不选。
PCMCIA/CardBus support:PCMCIA/CardBus支持。有PCMCIA就必选了。
System V IPC
BSD Process Accounting
Sysctl support:以上三项是有关进程处理/IPC调用的,主要就是System V和BSD两种风格。如果你不是使用BSD,就按照缺省吧。
Power Management support:电源管理支持。
Advanced Power Management BIOS support:高级电源管理BIOD支持。

5. Memory Technology Device(MTD)
MTD设备支持。可不选。

6. Parallel port support
串口支持。如果不打算使用串口,就别选了。

7. Plug and Play configuration
即插即用支持。虽然Linux对即插即用目前支持的不如Windows好,但是还是选上吧,这样你可以拔下鼠标之类的体验一下Linux下即插即用的感觉。
8. Block devices
块设备支持。这个就得针对自己的情况来选了,简单说明一下吧:

Normal PC floppy disk support:普通PC软盘支持。这个应该必选。
XT hard disk support:
Compaq SMART2 support:
Mulex DAC960/DAC1100 PCI RAID Controller support:RAID镜像用的。
Loopback device support:
Network block device support:网络块设备支持。如果想访问网上邻居的东西,就选上。
Logical volume manager(LVM)support:逻辑卷管理支持。
Multiple devices driver support:多设备驱动支持。
RAM disk support:RAM盘支持。

9. Networking options
网络选项。这里配置的是网络协议。内容太多了,不一一介绍了,自己看吧,如果你对网络协议有所了解的话,应该可以看懂的。如果懒得看,使用缺省选项(肯定要选中TCP/IP networking哦)就可以了。让我们看看,TCP/IP、ATM、IPX、DECnet、Appletalk……支持的协议好多哦,IPv6也支持了,Qos and/or fair queueing(服务质量公平调度)也支持了,还有kHTTPd,不过这些都还在实验阶段。

10. Telephony Support
电话支持。这个是什么东东?让我查查帮助,原来是Linux下可以支持电话卡,这样你就可以在IP上使用普通的电话提供语音服务了。记住,电话卡可和modem没有任何关系哦。

11. ATA/IDE/MFM/RLL support
这个是有关各种接口的硬盘/光驱/磁带/软盘支持的,内容太多了,使用缺省的选项吧,如果你使用了比较特殊的设备,比如PCMCIA等,就到里面自己找相应的选项吧。

12. SCSI support
SCSI设备的支持。我没有SCSI的设备,所以根本就不用选,如果你用了SCSI的硬盘/光驱/磁带等设备,自己找好了。

13. IEEE 1394(FireWire)support
这个是什么?低版本的没有见过,看看帮助再说。原来是要Fireware硬件来提高串行总线的性能,我没有,不选了。

14. I2O device support
这个也不清楚,帮助里说是这个需要I2O接口适配器才能支持的,在智能Input/Output(I2O)体系接口中使用,又是要硬件,不选了。

15. Network device support
网络设备支持。上面选好协议了,现在该选设备了,可想而知,内容肯定多得很。还好还好,里面大概分类了,有ARCnet设备、Ethernet(10 or 100 Mbit)、Ethernet(1000Mbit)、Wireless LAN(non-hamradio)、Token Ring device、Wan interfaces、PCMCIA network device support几大类。我用的是10/100M的以太网,看来只需要选则这个了。还是10/100M的以太网设备熟悉,内容虽然多,一眼就可以看到我所用的RealTeck RTL-8139 PCI Fast Ethernet Adapter support,为了免得麻烦,编译到内核里面好了,不选M了,选Y。耐心点,一般说来你都能找到自己用的网卡。如果没有,你只好自己到厂商那里去要驱动了。

16. Amateur Radio support
又一个不懂的,应该是配置业余无线广播的吧,没有,不要了。

17. IrDA(infrared)support
这个要红外支持,免了。

18. ISDN subsystem
如果你使用ISDN上网,这个就必不可少了。自己看着办好了。

19. Old CD-ROM drivers(not SCSI、not IDE)
做的可真周到,原来那些非SCSI/IDE口的光驱谁还在用啊,自己选吧,反正我是用的IDE的CD-ROM,不选这个。

20. Character devices
字符设备。这个内容又太多了,先使用缺省设置,需要的话自己就修改。把大类介绍一下吧:

I2C support:I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果你要选择下面的Video For Linux,该项必选。
Mice:鼠标。现在可以支持总线、串口、PS/2、C&T 82C710 mouse port、PC110 digitizer pad,自己根据需要选择。
Joysticks:手柄。即使在Linux下把手柄驱动起来意义也不是太大,游戏太少了。
Watchdog Cards:虽然称为Cards,这个可以用纯软件来实现,当然也有硬件的。如果你把这个选中,那么就会在你的/dev下创建一个名为watchdog的文件,它可以记录你的系统的运行情况,一直到系统重新启动的1分钟左右。有了这个文件,你就可以恢复系统到重启前的状态了。
Video For Linux:支持有关的音频/视频卡。
Ftape, the floppy tape device driver:
PCMCIA character device support:

21. File systems
文件系统。内容又太多了,老法子,在缺省选项的基础上进行修改。介绍以下几项:

Quota support:Quota可以限制每个用户可以使用的硬盘空间的上限,在多用户共同使用一台主机的情况中十分有效。
DOS FAT fs support:DOS FAT文件格式的支持,可以支持FAT16、FAT32。
ISO 9660 CD-ROM file system support:光盘使用的就是ISO 9660的文件格式。
NTFS file system support:ntfs是NT使用的文件格式。
/proc file system support:/proc文件系统是Linux提供给用户和系统进行交互的通道,建议选上,否则有些功能没法正确执行。

还有另外三个大类都规到这儿了:Network File Systems(网络文件系统)、Partition Types(分区类型)、Native Language Support(本地语言支持)。值得一提的是Network File Systems里面的两种:NFS和SMB分别是Linux和Windows相互以网络邻居的形式访问对方所使用的文件系统,根据需要加以选择。
22. Console drivers
控制台驱动。一般使用VGA text console就可以了,标准的80*25的文本控制台。

23. Sound
声卡驱动。如果你能在列表中找到声卡驱动那自然最好,否则就试试OSS了。

24. USB supprot
USB支持。很多USB设备,比如鼠标、调制解调器、打印机、扫描仪等,在Linux都可以得到支持,根据需要自行选择。

25. Kernel hacking
配置了这个,即使在系统崩溃时,你也可以进行一定的工作了。普通用户是用不着这个功能的。

总算配置完了,现在存盘退出,当然你也可以把现在的配置文件保存起来,这样下次再配置的时候就省力气了。

编译

在繁杂的配置工作完成以后,下面你就可以自己到杯茶耐心等候了。与编译有关的命令有如下几个:

#make dep
#make clean
#make zImage
#make bzImage
#make modules
#make modules_install
#depmod -a

第一个命令make dep实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要;第二命令make clean完成删除前面步骤留下的文件,以避免出现一些错误;第三个命令make zImage和第四个命令make bzImage实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,它们的区别在于使用make bzImage可以生成大一点的内核,比如在编译2.4.0版本的内核时如果使用make zImage命令,那么就会出现system too big的错误提示。建议大家使用make bzImage命令。
后面三个命令只有在你进行配置的过程中,在回答Enable loadable module support (CONFIG_MODULES)时选了"Yes"才是必要的,make modules和make modules_install分别生成相应的模块和把模块拷贝到需要的目录中。
严格说来,第七个命令和编译过程并没有关系,它是生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。

更新

经过以上的步骤,我们终于得到了新版本的内核。为了能够使用新版本的内核,我们还需要做一些改动:

#cp /usr/src/linux/System.map /boot/System.map-2.4.0test8
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.0test8

以上这两个文件是我们刚才编译时新生成的。下面修改/boot下的两个链接System.map和vmlinuz,使其指向新内核的文件:

#cd /boot;rm -f System.map vmlinuz
#ln -s vmlinuz-2.4.0test8 vmlinuz
#ln -s System.map-2.4.0test8 System.map

然后修改/etc/lilo.conf:

#vi /etc/lilo.conf

增加如下一段:

image=/boot/vmlinuz-2.4.0test8
label=linux240
read-only
root=/dev/hda2

其中root=/dev/hda2一行要根据需要自行加以修改。
运行:

#/sbin/lilo -v

确认对/etc/lilo.conf的编辑无误,现在重新启动系统:

#shutdown -r now

在机器重启后出现LILO时按TAB键,输入linux240,我们的新内核发挥作用了,好好享受吧。

 
2008-01-19 17:50
如何安装卸载 .tar.gz 格式的文件

from:http://blog.csdn.net/yjz0065/

tar.gz文件的安装,是属于自己编译源代码的方法。多说一句,tar是把文件打成一个包,并不压缩;.gz是用gzip把打成包的.tar文件压缩,所以成了一个.tar.gz的文件。

安装的话,先解包,tar -zxvf xxx.tar.gz,这样会生成一个以文件名命名的文件夹。里面会有一些README、INSTALL、DOC等等一些文档,仔细读读,可以知道这个软件安装需要什么特殊的设置什么的。这个没有办法细说了吧:)

一般软件包里会有一个叫configure的脚本文件,完成配置的任务。可以加很多参数,具体的可以运行./configure --help得到帮助的,比如./configure --prefix=xxx是设定软件安装到哪里。设置好参数,运行./configure,会生成makefile文件,这是你后面编译的基础。

接下来就要编译了,很简单,因为有makefile文件的存在,只要运行make就可以完成编译的。make是将读入所有由configure脚本程序建立的制作文件。这些制作文件会告诉make哪些文件需要被编译以及按照怎样的顺序对它们进行编译,因为可能会有上百个源程序文件。当make工作的时候,会在屏幕上显示出正在执行的每一个命令,以及与这个命令相关的全部参数。这些输出通常都是编译器的调用声明和所有传递给编译器的参数。如果编译器顺利地完成了工作,就不会出现什么错误信息。大多数编译器的错误信息十分清楚和明确,因此不用担心可能会漏掉一个错误。如果确实看到有一错误,也不用慌张。大多数错误信息并不反映出程序本身出现了一个问题,通常都是系统这里或者那里的问题。典型情况下,这些信息大多是因为文件访问权限不正确而产生的或者是因为文件没有找到。

完成编译,之后就是安装软件了。这就更简单了,make install就好了,这个命令将启动安装脚本程序。因为make命令会在执行每一个命令的时候把它显示出来,所以将会看到许许多多的文字掠过眼前。如果没有看到什么错误信息,就说明这个软件包安装好了。

安装就是make uninstall了,不要再具体说明了吧。

其实LINUX很好用的一点就是有很多文档可以查的,不明白多看看软件自己本身带的说明文档,很多问题都是可以解决的。
 
     
 
 
个人档案
 
yommc
男, 
 
   
 
文章分类
 
 
 
 
 
     
 
留言板
 
     
 
日历
 
     
 
最新评论
 
     
 
背景音乐
 
     
 
最新照片
 
   
 
我的搜藏
 
     
 
最近访客
 
 

giga1394

proe3000

lujun_zz

yangzerenkanlu

mctccy

猎魔之神

wwl1015

GaryPKU
     
 
订阅我的空间
 
已有人次访问本空间
 
订阅RSS  什么是RSS?

您也想拥有这样的空间?请点此申请。
     

帮助中心  |  空间客服  |  投诉中心  |  空间协议
©2012 Baidu