2006年11月30日

"Agile Web Development With Rails"看到第100页了

第一次看英文书,看了这么多,现在已经有了一些看英文书的习惯了:)
目前刚用rails做了两个小例子,对rails有如下体会.
  1. 两个有趣的概念migration和scaffold
    1. migration的字面意思的迁移,在rails里面主要用在数据库方面.无论是建立多个数据库(开发库,测试库,产品库)还是对库的数据结构做调整,对库中的数据做变动,只要不是自己的程序去做的,都归结到migration里面,而且rails通过一种操作规范把所有操作过程记录下来,这对于以后的部署和测试,我感觉是特别有帮助.在库中有一张schema_info表,这是rails自动生成的,它记录了当前migration的版本.
    2. scaffold提供了一个快速的工具,目前我的体会是,它可以通过你建立的表,直接生成相关的其他代码,从而提供一套web界面来让你直接通过浏览,增,删,改表里的数据.
  2. 方便的工具/script和rake.
    1. /script是在应用下的一个目录的名字,这个目录下存放大量的脚本,这些脚本是你生成代码的工具,当然它本身也是rails自己生成的.目前我用到了
    • ruby script/server --启动web服务器
    • ruby script/generate controller 控制器名称 --建立一个controller
    • ruby script/generate model 表名 --建立一个数据库的表
    • ruby script/generate migration 数据库变动名 --建立一次对数据库操作(非程序操作)
    • ruby script/generate scaffold product admin --根据model,controller生成scaffold实际的代码.
    1. rake目前看是rails一个很重要的工具,主要是做数据库方面操作命令比如
    • rake db:migrate,它就是实际执行前面"ruby script/generate migration"生成的代码的,而且他里面还有版本的概念你还可以用rake db:migrate VERSION=??让数据库到恢复一个特定版本的情况.对于rake还有很多别的功能,目前我没用到,暂时不提.
  3. MVC严格的结构特征
    1. 对于一个应用来说,应用系统的目录是已设定的,目录的用途已经按照MVC的形式做了规范,目录中的代码通过rails内部的机制做连接,按照默认的格式和用途很容易使用

2006年11月9日

打算学习一下RoR

最近看了程序员的杂志,发现ruby on rails比较有意思,同时ruby作为一门不错的脚本语言也可以看一看,目前来说我觉得对于web开发中JAVA系统的脚本语言粘合剂,还没有什么概念,RoR的构架和开发方式,无疑会对传统的spring+hibernate或者struts+hibernate产生冲击.

2006年10月13日

700M配置无线网卡成功拉

晚上配置无线网卡成功,终于可以把线扯了,呵呵,
其实在FC4里面已经带了IPW2200的驱动程序,不过能不能用,我现在也不知道了,我是按照http://ipw2200.sf.net/上把最新的程序下下来,在安装过程中,还涉及到ieee80211和firmware,按照INSTALL文档里的说明做就可以了,README.ipw2200是操作说明装好了驱动后要看一下,里面些的很复杂,我没全看,应为我发现之要使用iwconfig和iwlist这两个配置命令,我的无线已经通了,不过也许是应为用的是Linux,笔记本上的wifi指示灯并不亮,这两个配置命令,直接看man拉,主要就是iwconfig去配置ssid,这个配好了,用iwlist一扫就看到自己的无线路由器了,这时发现网已经通了,在装驱动的过程中,发现有关于内核的一些说明,我还没看懂,不知道modprobe有多大的用处.

2006年10月11日

在700M上安装FC4的步骤

网上搜来的,谢谢作者,原始地址在
http://www.cs.cornell.edu/~scs49/install_linux.html
互联网就是好阿
Installing Linux Distro Fedora Core 4 on Dell Inspiron 700m Laptop

* How to get Fedora Core 4
* . . . Download
* . . . Partition
* . . . . . . . . . Digital Wolf adds
* . . . . . . . . . Some tips by Kambiz
* . . . Installation
* . . . Configuration
* . . . . . . Setting up the wireless networking
* . . . . . . . . . Tips for Intel Pro Wireless 2200 and setting up closed and encrypted wi-fi
* . . . . . . . . . Guido Maneman adds...
* . . . . . . Screen Resolution
* . . . . . . Sound
* . . . . . . Accessing Windows files
* . . . . . . Installing Realplayer
* . . . . . . . . . Some tips by Ganesh - New
* . . . . . . . . . Some tips by Venkatesh
* . . . . . . Plugins - java and flash
* . . . Software Suspend a.k.a. Hibernate
* . . . Playing movies and listening to MP3s
* . . . Hard disk performance tuning and solving the heating up problem
* . . . Bug fix to get a console by hitting Alt+Ctrl+Fn (Bug 160470)
* Feedback
* Links
* Thanks to...

I've spent a lot of time installing and configuring Fedora Core 4 on my Dell Inspiron 700m. I decided to write this down for my own reference and so that you all don't spend your valuable time on things which I learnt the hard way.
How to get Fedora Core 4
Download

* Download the official Fedora 4 Core installation images from: Fedora Core website
* Check the SHA1 signature of all the files downloaded using some program like SHA1files
* After verifying the signature, burn the CDs / DVDs. Use any of the tools mentioned on http://www.petri.co.il/how_to_write_iso_files_to_cd.htm for doing that.

Partition
For partitioning, I downloaded Knoppix, burnt it on a CD and then ran ntfsresize. However, I think there might be a simpler way. If you find one let me know.
Digital Wolf adds
I happen to have access to ghost and a usb hard drive. my laptop's hd is 60gb and was partitioned as a C: drive for XP Pro. The usb drive is 40gb. I cleaned up my 60gb, ghosted it to the 40gb (booting into BartPE with ghost installed), then re-ghosted it back. When ghosting it back, I am given the option to resize the partition its going on. I selected 40gb and was left with 20gb for my linux.
Some tips by Kambiz
in response to the partitioning section check out http://www.sysresccd.org/ I find it a very useful disk aside from it's ability to resize partitions (NTFS too) because of it's other uses. Here's the description of it: SystemRescueCd is a linux system on a bootable cdrom for repairing your system and your data after a crash. It also aims to provide an easy way to carry out admin tasks on your computer, such as creating and editing the partitions of the hard disk. It contains a lot of system utilities (parted, partimage, fstools, ...) and basic ones (editors, midnight commander, network tools). It aims to be very easy to use: just boot from the cdrom, and you can do everything. The kernel of the system supports most important file systems (ext2/ext3, reiserfs, xfs, jfs, vfat, ntfs, iso9660), and network ones (samba and nfs).
Installation

* Pop in the CD (or DVD) in your drive and restart your computer. Make sure that the BIOS settings are set to boot from the CD (or DVD). On Dell Inspiron 700m, when the "DELL" boot up screen flashes up, press F12. Go to Boot devices and change the first boot device.. TODO.
* On restarating, the CD will boot and Fedora Core 4 installer will start. Follow the instructions.
* Make sure you select the Development tools and deselect Helix Player during the installation.

Configuration

OK, so here is where the fun begins! ;-) Almost all of the following require you to be root.
Setting up the wireless networking

I have Intel Pro Wireless 2100 card in my 700m. To check which one you have, run:

#lspci | grep Wireless

which should give an output like:

02:01.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)

If you get an output which says the adapter is 2200, then scroll down for some tips regarding that.

1. Download the IPW2100 Firmware from: http://ipw2100.sourceforge.net/firmware.php. (I used v0.55) Extract all the files to the /lib/firmware directory.
2. Download the IPW2100 driver files from http://ipw2100.sourceforge.net/. I used version 1.1.0. Make sure you use a version ending with .0 since only these are the stable ones.
3. Extract all the files to a directory and run #make. After that run #make install to install the driver.
4. Copy this file as /etc/sysconfig/network-scripts/ifcfg-eth1
5. Reboot your computer (you can issue the #reboot command on the terminal for this) and wireless networking should now be working.
6. I also found the Wifi-radar utility very useful for managing my wifi connections in GNOME. Download it from: http://www.bitbuilder.com/wifi_radar/

Tips for Intel Pro Wireless 2200 and setting up closed and encrypted wi-fi

Here are some tips from Thomas Savarimuthu:

Actually, i had an Intel 2200 BG mini PCI card and hence i had to guess (from IPW2100 URL) and find the right URL for IPW2200 - http://ipw2200.sourceforge.net. Even though i downloaded the correct firmware, i had trouble connecting to my office wireless network, since it is a closed and encrypted wi-fi network. So, i knew that i had to explicitely declare the SSID and WEP KEY in a config file, but i don't know which files to edit and what parameters to add. After a quick search i found the necessary information from one of the reference link you mentioned in the bottom of your page. He had mentioned about the parameters and configuration files to edit.

I had to add the following parameters into /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
IPV6INIT=no
ONBOOT=yes
USERCTL=yes ( if you want non-root user to start/shut this port)
PEERDNS=yes
BOOTPROTO=dhcp
TYPE=Wireless
ESSID="xxxxx" (put your closed network name)
CHANNEL=1
MODE=Managed
SECURITY=Restricted ( in cased of WEP key in "Shared" security mode)

and create a new file /etc/sysconfig/network-scripts/keys-eth1 to add the corresponding WEP key as below:
KEY=XXXXXXXX (HEX or STRING)

More over the IPW2200 driver available in the kernel-2.6.11 works fine if i just download and copy the corresponding firmware to /lib/firmware .

Guido Maneman adds...

I was fiddling around with getting wireless lan to work.

Thomas Savarimuthu told you to put SECURITY=Restricted ( in cased of WEP key in "Shared" security mode) in /etc/sysconfig/network-scripts/ifcfg-eth1, but this doesn't work.

I found a hint in http://www.redhat.com/archives/rhl-beta-list/2003-July/msg00848.html , removed SECURITY=Restricted in /etc/sysconfig/network-scripts/ifcfg-eth1 and added KEY="restricted 12345678901234567890123456" to /etc/sysconfig/network-scripts/keys-eth1

Screen Resolution

To get the screen resolution of 1280x800 (the default for Dell Inspiron 700m) follow these steps:

* Download 855Resolution package from http://perso.wanadoo.fr/apoirier/ I used version 0.4
* Extract the contents in any directory and run #make to compile the package. After that, run #make install to install it. Make sure you have the C compiler and other libraries installed. (Thanks to James McIntosh for pointing this out).
* Run #gtf 1280 800 60 to get a modeline for your laptop. On my laptop it gives:

# 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz
Modeline "1280x800_60.00" 83.46 1280 1344 1480 1680 800 801 804 828 -HSync +Vsync

* Copy the Modeline to your /etc/X11/xorg.conf file in the Monitor section. You can refer to my xorg.conf (Note: You can use a simple editor like gedit to edit a file, e.g. #gedit /etc/X11/xorg.conf &. The & at the end of the command runs the program in the background, so that you can keep using the terminal).
* In the Modes listed in the Screen section of xorg.conf, add "1280x800". I also removed all other modes from the line.
* Run #855resolution -l which gives an output like :

855resolution version 0.4, by Alain Poirier

Chipset: 855GM (id=0x35808086)
VBIOS type: 2
VBIOS Version: 3104

Mode 30 : 640x480, 8 bits/pixel
Mode 32 : 800x600, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1600x1200, 8 bits/pixel
Mode 3c : 1920x1440, 8 bits/pixel
Mode 41 : 640x480, 16 bits/pixel
Mode 43 : 800x600, 16 bits/pixel
Mode 45 : 1024x768, 16 bits/pixel
Mode 49 : 1280x1024, 16 bits/pixel
Mode 4b : 1600x1200, 16 bits/pixel
Mode 4d : 1920x1440, 16 bits/pixel
Mode 50 : 640x480, 32 bits/pixel
Mode 52 : 800x600, 32 bits/pixel
Mode 54 : 1024x768, 32 bits/pixel
Mode 58 : 1280x1024, 32 bits/pixel
Mode 5a : 1600x1200, 32 bits/pixel
Mode 5c : 1920x1440, 32 bits/pixel
Mode 7c : 1280x800, 8 bits/pixel
Mode 7d : 1280x800, 16 bits/pixel
Mode 7e : 1280x800, 32 bits/pixel


* We are interested in mode 7d or 7e (not tried) as these are 1280x800 modes. So run, #855resolution 7d 1280 800 and you should get an output like:

855resolution version 0.4, by Alain Poirier

Chipset: 855GM (id=0x35808086)
VBIOS type: 2
VBIOS Version: 3104

** Patch mode 7d to resolution 1280x800 complete


which means everything is OK. Don't worry, you won't see any changes in your screen right now.
* Now we have to ensure that this is run everytime you start X. So add the following to your /etc/rc.local file:

if [ `runlevel | cut -f2 -d' '` -eq 5 ]; then
#runscript
855resolution 7d 1280 800
fi

* Now restart your computer and you should see much better resolution of 1280x800.

Sound

* To enable sound from your laptop, run #alsamixer.
* Scroll to the rightmost colum using the right arrow and hit m. (i.e. turn it on)
* Exit the program by pressing Esc. Sound should now be working.
* You might also want to configure the volume buttons on the keyboard (Fn + F5 - Mute, Fn + F6 - Volume Down and Fn + F7 - Volume Up). This is very simple to do in GNOME. Go to Desktop -> Preferences -> Keyboard shortcuts and here specify these keys for the corresponding actions.

Accessing Windows files

The following applies only if you have an NTFS partition on which windows is running. To check that, run #fdisk -l | grep NTFS If you see a line like

/dev/hda2 * 7 2456 19679625 7 HPFS/NTFS

, then it means that you are having your windows ntfs partition on /dev/hda2.

I will now explain how to read files from the ntfs partition.

* Download the linux ntfs kernel module from http://prdownloads.sourceforge.net/linux-ntfs/kernel-module-ntfs-2.6.11-1.1369_FC4-2.1.22-0.rr.6.0.i686.rpm and install it.
* Next, run #/sbin/modprobe ntfs. There should be no output. Now you are all set.
* Now, to mount the windows partition, run

#mkdir /mnt/windows
#mount /dev/hda2 /mnt/windows -t ntfs -r -o umask=0222

* Now #ls /mnt/windows/ should show you your windows files. Note that you can only read from the partition, you can't write to it. There are other modules available which can write to ntfs too, but I haven't tried them since I don't want to take the risk.

Installing Realplayer

* Before installing realplayer, you need some libraries. Run #yum -y -install compat-libstdc++-33 to get the libraries.
* Download RPM from www.real.com and install it.
* Restart firefox.
* Check if real player is working by listening to BBC Radio. (Note: Not all sites may work. See workaround below)
Some sites like www.raaga.com do not work in spite of this. I've tried my best, but there seems to be no way of getting them to work, so I had to use a workaround. Do this only if there are some sites which do not work, otherwise you should be all set.
o Download and install wine from http://winehq.org/site/download-rh. I am using the i686 package of wine 20050524.
o Run #wine. It will create default directories, etc.
o Copy this file as your wine config file, i.e. save it as ~/.wine/config
o Download the windows installer of firefox and install it by opening it with wine. Start it using wine (You may have to give a command like # wine /root/.wine/drive_c/Program\ Files/Mozilla\ Firefox/firefox.exe , and install realplayer (windows version) from www.real.com through it. (At the end of installation, real player hangs, but after restarting, everything works ok for me).
o Now this installation of firefox should be able to play all sorts of internet radios, etc. (At least, it plays raaga.com and smashits.com for me!)
o If you find a better solution, please let me know!
Some tips by Ganesh - New

Realplayer plugin incompatibility with firefox arises due to the fact that firefox is compiles with gcc > 3.2 where as the stock realplayer download from real.com is compiled with gcc 3.2.

The solution to this problem is finding realplayer compiled with gcc > 3.2. here is the link to such a realplayer version ......... it is not the latest release, but works with raaga.com, musicindiaonline.com and smashits.com https://helixcommunity.org/download.php/954/RealPlayer-10.0.3-rc1-rhel4.src.rpm.tar.bz2

installation is kind of warped. rpm puts the install.bz2 in /usr/src/redhat/SOURCES .... so make sure /usr/src/redhat/SOURCES directory exists.

anyway here are the steps

tar -jxvf RealPlayer-10.0.3-rc1-rhel4.src.rpm.tar.bz2
rpm -ivh --nodeps RealPlayer-10.0.3-rc1-rhel4.src.rpm
mkdir realplayer
cd realplayer
tar -jxvf /usr/src/redhat/SOURCES/install.bz2

Some tips by Venkatesh
I too have been having a lot of problems for the last four months on getting raaga.com to work on my linux box. A few minutes ago it started working and I thought I should write to you the feedback. This is WITHOUT using Wine.

First, my configuration. I've a Dell Inspiron 1150 laptop since eight months. No problems with this box - it works well.

In Jan 2005 I installed Linux Fedora Core 2.0 on this box (dual-boot, XP Home on the other partition). The default Mozilla that came with this FC2 dist is version 1.6. I downloaded RealPlayer and JDK and got raaga.com to work.

Usually the Red Hat Network comes up time and again for autoupdation, and it installed Mozilla 1.7.3.

Thereafter, raaga.com stopped working! After that I didn't know what happened.

After four months of (trivial, naive) fighting I just got a new installation of FC2 on the same box, to work. Here are some points to consider.
1. Mozilla 1.6 is compiled with gcc 3.2; therefore we need to ensure that our gcc libs are 3.2 and above. I've got 3.3 as part of the default install -- no problems
2. It is Java 1.4.2 that is compatible with gcc 3.2 and above. I am not sure about Java 1.5 (aka 5.0) and its compatibility. I had to uninstall Java 1.5 and reinstall Java 1.4.2 just for the sake of raaga.com! After installation, the plugin had to be linked with the subdirectory ns6-gcc32 and not the default ns6.
3. The docs in Mozilla-->Help-->Plugins clearly suggest downloading and installing RealPlayer VERSION 10.0.0.297. I had earlier been trying with RealPlayer Gold which was not effective. Upon trying today with 10.0.0.297, it worked.

I suspect we need to pay careful attention to the version numbers and the gcc/glibc that was used to compile, and its compatibilities.

Hope these points help to some extent. Please write back if you could get your box to play raaga.com without using Wine.

Plugins - java and flash

* Download the java plugin JRE 1.5 Update 3 from sun from : http://java.sun.com/j2se/1.5.0/download.jsp. Download the Linux self extracting file (ends with .bin). Do not download the .rpm package! Read the Fedora Core 4 release notes if you want to know why.
* Run #chmod +x jre-1_5_0_03-linux-i586.bin and then #./jre-1_5_0_03-linux-i586.bin to install the plugin.
* Move the package to /opt/ directory by running #mv jre1.5.0_03 /opt/
* Next make a symbolic link for firefox to recognize the plugin. #ln -s /opt/jre1.5.0_03/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla/plugins/libjavaplugin_oji.so More details at: http://plugindoc.mozdev.org/faqs/java.html#Linux
* To install the flash plugin, just visit any page with flash content on it. Firefox shows a message on top of the page saying that some plugins are required for the page. Click on the link and install flash.

Software Suspend a.k.a. Hibernate

Here's how to get your box to hibernate and wake up as in Windows.

* Get the hibernate rpm from Matthias Hensler's page: http://mhensler.de/swsusp/download/hibernate-1.08-1.i386.rpm and install the package.
* Save this file as /etc/hibernate/hibernate.conf
* Get the kernel rpm corresponding to Fedora Core 4 : http://mhensler.de/swsusp/download/kernel-2.6.11-1.1369_FC4_cubbi8_swsusp2.i686.rpm and install it
* Edit /etc/grub.conf and add resume2=swap:/dev/??? (i.e. your swap drive) to the end of the kernel line. For example, look at my grub.conf Note that your swap drive may be different.
* Run the following commands:

# cd /root/ && mkdir myinitrd/ && cd myinitrd/ (create temporary directory)
# gzip -dc < /boot/initrd-2.6.11-1.1369_FC4_cubbi8_swsusp2.img|cpio -i (unpack the current initrd) # gedit init & (edit the init-file and include these two lines after mount -t sysfs ... and before echo Creating /dev: echo Activating software suspend echo > /proc/software_suspend/do_resume
# find . | cpio -o -c | gzip -9 > /boot/initrd-2.6.11-1.1369_FC4_cubbi8_swsusp2.img (create the new initrd)
# cd .. && rm -rf myinitrd/ (Cleanup)

* Now you can reboot with your new kernel. To hibernate, run #hibernate

Playing movies and listening to MP3s

I use xmms for listening to mp3s and xine for viewing DVDs, etc. You may also need the MPlayer package to play Windows media files. Here's how to get it.

* Download this file as /etc/yum.conf
* Run #yum --enablerepo freshrpms install xine xmms mplayer
* By default, because of licensing issues, Fedora Core 4 does not ship with MP3 decoders. Get one from: http://www.gurulabs.com/goodies/downloads.php (Note: The rpm for fedora core 3 works fine).
* Also get the mplayerplug-in which allows windows media to be played in a browser from: http://mplayerplug-in.sourceforge.net/download.php (Again, the Fedora Core 3 rpm worked fine for me)

Hard disk performance tuning and solving the heating up problem

At this point everything was working fine, except that my laptop was unusually hot (as compared to Windoze). It turns out that although CPU throttling is inbuilt in the kernel (and works fine), hard disk is not put in the 'spin down' mode automatically.

Here's what I've done till now:

* Edit /etc/sysconfig/harddisks and add -m16 to the EXTRA_PARAMS line. Alternatively, uncomment the line MULTIPLE_IO=16 (Suggested by Stephen Lau). This will reduce the hard disk usage and considerably reduces power consumption. For more details see #man hdparm.
* Download and install Laptop Mode Tools. Download the tarball; installation is easy: just run #./install in the directory where you extracted all the files. I am still experimenting with it's options, so keep checking this page for updates.

Bug fix to get a console by hitting Alt+Ctrl+Fn (Bug 160470)

I could not get a terminal by hitting Alt+Ctrl+Fn (for example try Alt+Ctrl+F1). It turns out that this is a documented bug on bugzilla: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=160470. To fix this bug, download this file as /usr/X11R6/lib/modules/libvgahw.a and restart. Now the problem should be fixed.
Feedback

Please send me any comments, corrections and suggestions at : scs49 at cornell dot edu. All corrections/suggestions will be acknowledged. My only aim of maintaining this page is to make life easier for other people.
Links

Here are a few useful links

* Mauriat Miranda's Personal Fedora Core 4 Installation Guide
* Installing Fedora Core 3 (Linux) on Dell 700m by Mike
* Software Suspend with Linux and Fedora Core - M. Hensler
* TuxMobil: Linux with Laptops, Notebooks, PDAs, Mobile Phones and Portable Computers

Thanks to...

* Stephen Lau for pointing out some broken links and some tips regarding hdparm.
* All other contributors. Keep your tips coming in and I will keep updating this page!

Last updated: November 01 2005

The latest version of this document can be found at : http://www.cs.cornell.edu/~scs49/install_linux.html

Built with gvim on a Dell Inspiron 700m running Fedora Core 4

Valid HTML 4.0!

StatCounter - Free Web Tracker and Counter

2006年10月5日

关于MTU

使用VPN数据会中断的问题已经查到并解决。在这里总结一下吧。
现象
在LINUX下使用PPTP Client建立VPN连接,在使用中,遭遇到当通过VPN做CVS做项目数据同步的时候遇到固定的一个项目的一个固定的文件,VPN将会中断,另外一种现象是,通过FTP传递一个100M的文件时,VPN会中断。所谓的中断指的是:客户端和服务器端的VPN仍然是通的,不过,无法通过VPN访问服务器所在的局域网内网了。
解决办法
通过检索PPTP网站,发现有相关描述http://pptpclient.sourceforge.net/howto-diagnosis.phtml#connections_freeze,按照这里的描述通过修改MTU数值可以解决这个问题。因此在PPTP Client的配置里面,选择最后一项“杂项”在PPPD的参数里面增加“mtu 1404"。(感谢补锅匠找到了解决办法)
分析
根据我的理解,在LINUX里面有一个物理设备eth0负责网络数据传输,根据乙太网的MTU要求,eth0的MTU为1500,即每个包1500Byte,超过1500就会有分片。这个1500包括了IP包头和数据段。当建立了一个VPN后,会形成一个逻辑的PPP0设备,他是一个逻辑网络设备负责网络数据传输,传输的时候是通过eth0这个实际物理设备来完成的。对于PPP0也有MTU,它包括VPN协议的包头加数据,那么PPP0的MTU是多少才比较合适呢?由于PPP0是通过eth0做传输的,为了避免对数据包的切片,就要求,PPP0上的MTU必须要比eth0上的MTU要小。这样PPP0的数据再加上IP包头就会比eth0的MTU=1500小,所以在PPP0上设置MTU =1404。甚至是个比1404更小的数字,通过ifconfig你可以看到eth0的MTU就是1500,而PPP0的MTU就是1400。据说在windows系统中,你建立一个VPN连接后windows系统自动会把这个虚拟网卡的MTU改成1400,所以在使用中你不会遇到这个问题。(感谢嘻嘻不厌其烦的解释)

2006年9月29日

进行有效编辑的七种习惯

一篇不错的文章,有空就多看几遍罗
进行有效编辑的七种习惯
Bram Moolenaar

如果你的很多时间是用来敲纯文本,写程序或HTML,那么有效地使用一个好的编
辑器能节省你不少时间。这篇文章里的指导和提示将有助于你更快工作,更少犯
错误。

文中采用开源文本编辑器Vim(Vi IMproved)说明有效编辑的思想,但这些思想也
适用于其他编辑器。择合适的编辑器只是有效编辑的第一步,对于哪个编辑器更
好的讨论将占很大地方,这里就不提了。如果你不知道该用哪个编辑器,或者对
现在所使用的不太满意,不妨试试Vim;你是不会失望的。

第一部分:编辑一个文件

快速定位

编辑中大部分时间是花费在阅读、查错和寻找应该进行编辑的地方上,而不是插
入新文字或进行修改。在文件中不断定位(navigate)是经常要做的,所以最好学
会如何快速地进行。

你常会搜寻文档中的一些文字。或者找出包含特定词或词组的行。你当然可以使
用搜寻命令 /pattern,不过还有更聪明的方法:

* 如果你看到一个特定词,想看看其他地方是不是出现过同样的词,可以使用
* 命令。它将对光标所指的词进行搜寻。
* 如果设置了 ' incsearch' 选项,Vim将在你正在输入搜寻模式的时候就
显示搜寻的结果(而不是等到你敲了回车之后)。这能够使你更快地找出拼写
错误。
* 如果设置了 ' hlsearch' 选项,Vim将使用黄色背景对搜寻结果进行高亮
显示。你可以对搜寻的结果一目了然。应用在程序代码中可以显示变量的所有
引用。你甚至不需要移动鼠标就能看到所有的搜寻结果。



对于结构化的文档,快速定位的办法就更多了。Vim提供专门针对C程序(以及
C++、Java等等)的特殊命令:


* 使用 %可以从开始括号跳到对应的关闭括号。或者从 ``#if'' 跳到对
应的 ``#endif''。事实上, % 可以完成许多对应项之间的跳转。可
以用来检查if()和{}结构是否平衡。
* 使用 [{可以在代码段(block)中跳回到段起始的 ``{``。
* 使用 gb 可以从引用某个变量的地方跳转到它的局部声明。



定位的方法当然不止这些。关键是你需要知道有这些命令。你也许会说不可能学
会所有命令 ? Vim里有成百个定位命令,有的很简单,有的很聪明 ? 这需要
几星期的学习。不过,你不必如此;你只需要了解自己的编辑特点,然后掌握相
关的定位命令就可以了。

可以采取三个基本步骤:


1. 在你进行编辑的时候,注意那些重复进行的操作。
2. 找出能快速进行这些操作的编辑命令。阅读文档,问问朋友,或者看看其他
人是如何做的。
3. 进行练习,知道熟练为止。



让我们通过以下这个例子说明一下:


1. 你发现在写C程序时,经常要查找函数定义。你目前使用 * 命令对函
数名进行搜寻,但得到的往往是函数的引用而不是函数定义。你觉得一定会
有更好的办法。
2. 读过一篇快速参考以后,你发现关于定位标记的说明,里面说明了如何定位
函数定义,这正是你要找的!
3. 你试着生成了一个标记文件,使用Vim自带的ctags程序。你学会了使用
CTRL-] 命令,发现这省了不少事。为了更方便,你在 Makefile 里加
入了几行以自动生成标记文件。



当你使用以上三个步骤时,有几点需要注意的地方:


* ``我只想完成任务,不想去读那些文档来找新的命令。''。如果你真的是这
么想的,那么你将永远停留在计算的石器时代。有些人编写什么都用
Notepad,却总不明白为什么其他人总能用他一半的时间成任务。
* 不要过分。如果你总为一点小事也要去找完美的命令,你就没法集中精力到
你本要完成的任务上了。只要找出那些耗费过多时间的操作,然后使用相关
的命令直到熟练就可以了。这以后你就能集中精力到自己的文档上了。



下面这些章节给出了大多数人遇到的操作。你仿照它们在实际工作中使用
三个基本步骤。

不要敲两次

我们所使用的字词集合是有限的。既使是词组和句子也不过是有限的几个。对于
程序来说更是如此。很明显,你不想把同样的东西敲上两遍。

你经常会想把一个词替换成另一个。如果是全文件替换,你可以使用
:s (substitute)命令。如果只是几个位置需要被替换,一个快速办法是使
用 * 命令找出下一个词,使用 cw 来进行替换。然后敲
n 找到下个词,再用 . 重复 cw 命令。

. 命令重复上一个改变。这里的改变是插入、删除或替换操作。能够重复
进行操作是个极为强大的机制。如果好好使用它,那么你大部分的编辑工作可能
只不过是敲几下 . 的事。小心不要在两次重复之间做其他修改,因为这
将改变你要重复的操作。如果确实需要如此,可以使用 m 命令记住要修
改的位置,等重复操作进行完毕之后再回过头来修改它。

有些函数名和变量名可能很难敲。你能准确无误地输入
``XpmCreatePixmapFromData''么?Vim的自动补齐机制能给你省不少事。它查看
你正在编辑的文件以及#include文件,你可以只敲入``XpmCr'',然后使用
CTRL-N 命令让Vim把它补齐为``XpmCreatePixmapFromData''。这不但节省
了输入时间,而且减少了输入的错误。

如果你有同样的词组或句子需要输入多次,还有个更简单的办法。Vim可以进行
录制宏。使用 qa 命令开始在'a'寄存器里录制宏。然后正常地输入编
辑命令,最后用 q 退出录制状态。如果你想重复所录制的命令,只需
执行 @a 命令。Vim总共提供26个这样的宏寄存器。

使用宏录制功能可以记录各种操作,不只限于插入操作。如果你想重复一些东西,
不妨一试。

需要注意的是记录的命令会被原封不动地重复执行。在进行定位时简单的重复宏
操作可能不是你想要的结果。比如对于一个词这里可能需要左移4个字符,在下
个地方可能就要左移5个字符。所以必须定位到合适的位置再重复进行宏操作。

如果你要重复的命令很复杂,把它们一次敲进去会很困难。这时你可以写一个脚
本或宏。这常被用于建立代码模板;比如,一个函数头。你想做得多聪明就可以
做得多聪明。

知错就改

编辑时经常会出错。无人能免。关键是快速发现并进行改正。编辑器应该提供这
方面的支持,不过你必须告诉它什么是对什么是错。

你可能常常会重复同样的错误,你的手指所做的并非是你要它做的。可以使用缩
写(abbreviation)进行修正。下面是一些例子:


* :abbr Lunix Linux
* :abbr accross across
* :abbr hte the


这些词会在编辑时被自动改正。

同样的机制也可以用于对很长的词语进行缩写。特别适用于输入那些你觉得很难
敲的词,它可以避免出错。比如:


* :abbr pn pinguin
* :abbr MS Mandrake Software


但有时候你想要的正是那些缩写,比如想插入``MS''。所以缩写中最好使用那些
不会出现在文中的词。

Vim提供了一个很聪明的高亮机制,一般用于程序的语法高亮,不过也可以用来
查错。

语法高亮会使用颜色显示注释。这听上去不是什么特别重要的功能,不过一旦用
起来就会发现这其实很有用。你能够快速地发现那些没有高亮却本应作为注释的
文字(可能是因为忘了敲注释符)。也可以发现一些被错误当成注释的代码(可
能是因为忘了敲``*/'')。这些错误在黑白方式下是很难被发现的,浪费了不少
调试时间。

语法高亮也可以用来查找不匹配的括号。一个未被匹配的``)''会被亮红色背景
加以标识。你可以使用 % 命令他们是被如何匹配的,然后把``(''或
``)''插入到合适的位置。

另一类常犯的错误也很容易发现,比如把 ``#include <stdio.h>''敲成了
``#included <stdio.h>''。在黑白方式下这是很难发现的,但在语法高亮下
则能很快发现``include''能被高亮而``included''没有。

再看一个更复杂的例子:对于英文文本你可以定义一个所要使用的词的长列表。
所有未在表中出现的词都可能是错误,并进行高亮显示。可以定义几个用于编辑
词表的宏。这正是字处理器的拼写检查功能。Vim中是靠一些脚本来实现的,你
也可以对它进行定制:比如,只对注释中的文字进行拼写检查。

第二部分:编辑多个文件

文件总是成帮结伙

人们很少只编辑一个文件。一般需要顺序或同时编辑一些相关的文件。你应该利
用编辑器使多文件编辑工作更为高效地。

上面提到的标识(tag)机制也支持跨文件搜寻。一般做法是为项目的所有文件生
成标识文件,然后在项目的所有文件中搜寻函数、结构、类型(typedef)等的定
义。这比手工搜寻要快捷的多;我浏览一个程序要做的第一件事便是建立标识文
件。

另一个强大的功能是使用 :grep 命令对一组文件进行模式搜寻。Vim把
搜寻结果做成一个列表,然后跳到第一个结果。使用 :cn 命令跳到下
一个结果。如果你想改变一个函数调用的、参数个数,那么这个功能会很有用。

头文件里有很多有用的信息。然而要知道一个声明出现在哪个头文件中却需要花
不少时间。Vim能够理解头文件,能够从中找到你需要的东西。把光标移动到函
数名下,然后敲 [I:Vim就会显示出一个头文件中该函数名的所有匹配。
如果你想得到更详细的结果,可以直接跳到声明中。一个类似的命令可以用于检
查你所使用的头文件是否正确。

你可以把Vim的编辑区域进行分隔,用来编辑不同的文件。你可以对两个或多个
文件进行比较,或者进行拷贝/粘贴。有许多命令用于打开关闭窗口,文件间跳
转,暂时隐藏文件等等。可以再使用上面提到的三个基本步骤选择合适的命令进
行学习。

多窗口还有更多的用法。预览标识(preview-tag)就是个很好的例子。它打开一
个特殊的预览窗口,光标还保留在你正在编辑的文件中。预览窗口中可以是光标
所指函数的声明。如果你移动光标到另一个名字下,停留一两秒,预览窗口中就
会显示那个名字的定义。名字还可以是头文件中声明的结构或函数。

让我们一起来工作

编辑器可以编辑文件。e-mail程序可以收发消息。操作系统可以运行程序。每个
程序都有它自己的任务,而且应该做好。如果能让程序一同工作,那么就会实现
很强大的功能。

举个简单的例子:选择一个列表中的结构化的文字,并对它进行排序:
!sort。这将使用外部命令``sort''来过滤文件。容易吧?排序功能是可以
添加到编译器中的。不过看一下``man sort''就知道它有很多选项。它可能用了
一个极为精巧的排序算法。你还打算把它加到编辑器中么?更何况还有其他不少
过滤程序。编辑器可能会变得很大。

Unix精神的一个体现就是提供独立的程序,各自做好自己的任务,然后组合起来
完成更大的任务。不幸的是,许多编辑器不能很好地和其他程序一起工作,比如,
你不能包Netscape的邮件编辑器换成其他编辑器。这样你只能使用那个不顺手的
程序。另一个趋势是在编辑器里提供所有的功能,Emacs就是个代表(有人说
Emacs其实是个操作系统,只是可以用来编辑文件)。

Vim尽力和其他程序集成,但这需要经过斗争。目前Vim已经可以作为
MS-Developer Studio和Sniff的编辑器。一些e-mail程序(比如Mutt)也支持外
部编辑器。和Sun Workshop的集成工作正在进行中。总的来说这个领域还有待提
高。将来我们会有一个大于其各部分总和的系统。

文本结构化

你可能经常会遇到有一些结构的文本,这些结构可能同于那些现有命令所支持的
结构。这样你不得不利用那些底层的``砖头''创建你自己的宏和脚本。这里说明
的就是这类更复杂的东西。

有个简单的办法可以加速编辑-编译-修改这个循环。Vim提供 :make 命
令,用于进行编译,并且获取错误输出,把你带到发生错误的地方进行修正。如
果你使用了另一个编译器,那么错误就无法被Vim获得。如果不想自己动手,可
以修改' errorformat'选项。告诉Vim错误是什么样子,以及如何从中获
得文件名和行号。它支持复杂的gcc错误信息,所以应该也能支持其他编译器。

有时处理一个新的文件类型只需要设置几个选项或写一些宏。比如,为了在man
手册中进行跳转,你可以写一个宏获取光标下的词,清除缓冲区,然后读入新的
man手册。这是简单而高效的参照(cross-reference)方法。

使用三个基本步骤,你可以更有效地处理各种结构化文件。只需要想想你想对文
件采取的操作,然后找到相应的命令去用就是了。就这么简单,你只要去做就成
了。

第三部分:磨刀

养成习惯

要学会开车必须下功夫。这是不是你只骑自行车的原因么?当然不是,你会发现
你必须花时间来获得所需的技术。文本编辑也不例外。你需要学习新的命令,并
使用它直至成为习惯。

另一方面,你不应该试图学习编辑器提供的每个命令。这是彻底的浪费时间。大
多数人只需要学习10%到20%的命令就足够工作了。但是每个人所需要的命令都
各不相同。你需要不断学习,找出那些可以自动完成的重复操作。如果你只做一
次操作,而且以后也不会再去做,那么就不需要进行优化。是如果你发现你在过
去的一小时中重复了好几遍同样的操作,那么就有必要查看一下手册,看看能否
更快速地完成。或者写一个宏来做。如果是是个不小的任务,比如对一类文本进
行对齐,你需要阅读一下新闻组或看看Internet上是不是有人已经解决了同样的
问题。

最根本的步骤是最后的那一个。你可能能够找到一个重复性的任务,找到一个不
错的作法,可过了一个周末就彻底忘了自己是怎么做的了。这不成。你必须重复
你的作法直到烂熟于胸。只有这时你才真正获得了你需要的高效。一次不要学得
太多。一次只试一些工作得很好的方法。对于那些不常用的技巧,你可能只需要
把它记下来,留待以后查阅。总之,如果抱着这样的目标,你的编辑技能就会更
加有效。

最后需要指出的是,如果人们忽略了以上几点会发生什么:我仍然可以看到有人
盯着屏幕看上半天,用两个指头敲几下,然后继续抬头看着屏幕,还抱怨自己太
累.. 把十个指头都用上!这不光更快,还不累。每天抽出一个小时练习一下指
法,只要几星期就足够了。

后记

书名得益于Stephen R. Covey所著的那本畅销书《高效人的七种习惯》(``The 7
habits of highly effective people'')。

关于作者

Bram Moolenaar是Vim的主要作者。他编写了Vim核心功能,并采纳了许多开发者
提供的代码。他的e-mail地址是:Bram@Moolenaar.net

2006年9月27日

在vi里开发JAVA代码

准备建立自己好的编辑习惯,vi看来是个不错的开始
转帖自http://java.ccidnet.com/art/3743/20050901/519667_1.html

大多数的软件开发人员都会在其生涯的某个时候碰到vi编辑器??如果不是在大学里的话,那就是在实际使用的UNIX机器上,将自己的Windows桌面机器里所编码东西安装到完全成熟的集成开发环境(IDE)里的时候。很少能够碰到长期从事微软系统开发的开发人员不会在一个月至少使用vi一次。有些开发人员很喜爱vi,而其他的则很厌恶它。但是对于一个Java 的开发人员来说,要想让vi成为一个更好的开发环境将会有很多的工作需要完成。



很多人都预料Java和vi并不总是能够共同工作。因为vi是小型功利主义的同义词,而Java则像是一头笨拙的大型动物。选择将vi作为其主要工作环境的Java开发人员可能是比较罕见的,但是即使是偶尔使用vi的用户,也能够从花上一点时间将它配置一下,使之与Java更加友好上获益。你可能会很震惊的看到,当所有提到的工作都做到位之后,vi能够为你的IDE提供多少特性。



让我们开始吧




首先,要确信你的vi命令已经连接到了vim库,至少要象征性地连接到了或者替代了(aliased)。Vim的意思是Vi Improved,它几乎已经在vi及其衍生产品中占据了的主导地位。它速度快,易维护,特性丰富,而且几乎在每个平台上都有。



一旦你安装好了vim,就要在你的主目录下创建一个叫做.vimrc的文件。Listing A显示了一个很好的.vimrc起始文件。这个文件里的几个命令行告诉vi要给Java的源代码涂上颜色,使其更易于阅读。其结果并不十分重要,而且如果你不喜欢显示出来的颜色,你可以放心地取消它们。




对标签跳跃的支持



标签是Java的标识符,它们可以是包装名、类名、方法名,或者是字段名。在你的代码里创建一个所有标签的大型索引,能够让你使用单个按键就跳跃到任何类、方法或者字段的定义上。这些索引文件都是使用ctags程序创建的,后者在vim的发行版里都有。



Ctags会获取Java源文件或者包含有Java源代码的目录的列表,从中提取标识符的信息,再生成所vi需要的用于跳跃到标签的排序索引。下面一行代码是ctags调用的一个例子,只要JAVA_HOME变量被正确地定义,它会生成一个包含有项目源代码里所有标识符的标签文件,Sun核心库源代码也是如此:



ctags -f ~/.tags -R ~/myprojects/src $JAVA_HOME/src



一旦标签索引创建好了,你所需要做的只是告诉vi要在哪里找到它。这一步是通过将set tags=~/.tags添加到你的~/.vimrc文件里实现的。有了可用的标签索引文件,而且vi也知道了要到哪里去找到它,你现在就可以通过按 [CTRL] ]来跳跃到任何标识符上了。尽管这对于跳跃到你已经定义的方法、类和你自己编写的字段上很有用,但是如果你将Java核心类库加到你的标签索引里将会更加有用。现在,只用简单地对任何核心类库的类或者方法按[Ctrl] ],你就会跳跃到它完全使用javadoc所编写成的定义。.


标签名的填充




虽然跳跃到类、方法和字段定义所在的位置对于查看其javadoc以及检查其内容是有很用处的,但是更常见的情况是,你只是需要检查一个关键字的定义。在大多数IDE里,这一点是通过输入关键字完成的。但是,如果你已经将你的标签文件像前面一部分所讲的那样设置了,那么在vi里填入关键字就只是一个导向性的配置了。



将set complete=.,w,b,u,t,I这一行放到你的~/.vimrc文件里,能够让你在插入模式下通过按[Ctrl]N自动地将任何类、方法或者字段名填满。连续按[Ctrl]N将移动到下一个相匹配的地方。当你看到你想要找的标签时,只用继续输入你源代码剩下的部分就行了。你可以在vim的Web 网站上找到其他关于标签名填充的提示,包括使用Tab键来进行填充。



方法的折叠



好的实践经验告诉我们:你应该保持类的短小和简单,因为程序复杂性表现在类的层次性上,而不是500行的方法上。不幸的是,有些类已经脱离了控制,变得事实上无法移动操作了。



IDE常常会在左边一个狭窄的框体提供一个列出了内容里方法的表格,以此来减轻开发人员查看冗长源代码的困难。与之相对的是,vi提供了一种它叫做“方法折叠(method folding)”的可折叠程序块。折叠允许你隐藏被缩排过的(indented)代码块开头和结尾之间的所有代码。要激活折叠,就要把set foldmethod=indent加到你的~/vimrc里。



一旦方法的折叠被激活,你就可以使用:set foldlevel=0来极大地精简一个Java的源文件。如果将折叠的层数设置为零,那么你就是在告诉vi只显示完全没有被缩排的命令行,而后者在大多数Java源文件里代表着包装、导入,以及类或者接口的定义行。设置foldlevel=1就是告诉vi说:除了没有被缩排的命令行,只缩排过一次的命令行也应该被显示,它们包括方法的签名以及其他一些不多的内容。要打开一个折叠夹并查看某个方法所隐藏的内容,你就要在被折叠的命令行上输入zO。



通过设置foldlevel就能够很轻易地开启或者取消方法的折叠。我喜欢在调试的时候使用它,但是不喜欢在编写新代码的时候使用它。你要自己来决定它应该如何去适应你的工作方式。


编译和快速修补的编辑




IDE不仅仅只是用于编辑;它们还是编译环境。Vi在不需要使用外部编译器和剖析结果信息上的工作做得非常好。现在很多Java的项目都将易于编写脚本的Ant作为一个创建环境。我没有向.vimrc文件里加载很多Ant专用的设置,而是单独创建了一个做作vimAnt脚本,见Listing B。



这个脚本调用了一个带有几个参数的Ant可执行文件,然后对输出进行过滤,让其只包含编译器输出。你现在几乎就准备好从vi里调用Ant了。你只需要将Listing C里的命令行加到你的~/.vimrc文件里。这些命令行告诉vi要调用你所创建的vimAnt脚本,并提示它如何剖析Ant的jikes输出。



在你的系统路径下有了vimAnt脚本之后,你现在就可以使用:make命令来初始化编译了。当前目录及其所有的父目录都会被搜索,以寻找一个build.xml文件,这个文件的类对象会被调用。错误输出会被vi自动地剖析。



一旦你在vi里进行了带有错误的编译,你就可以使用快速修复(quick fix)模式来迅速地到达错误地点,进行及时的修补。:cn命令会把你带到下一个出错地点,而不考虑它在什么文件里。:cc命令会向你显示当前错误的编译器输出信息;而:cl会生成一个列有项目所有错误的列表,以供浏览这些错误。修补好你的错误,你就离成功的编译只有一:make之遥了。

2006年9月26日

wherethehellisbrian

wherethehellisbrian

FC4下使用VPN继续受挫

在FC4下使用VPN遇到两个问题,
1.在eclipse使用CVS通过VPN获得项目的时候,一个固定的项目会中断VPN
2.通过使用wine模拟使用BQQ,发现无法登陆网络.

在第1个问题上,客户端用的是PPTP Client,服务端用的是PPDP,但是用CVS check out 固定的项目就会造成通过VPN服务器访问内网中断,但是客户端到VPN服务器的访问仍然是通的.试图通过修改家里的路由器的MTU值来解决这个问题,最终失败,仍然没有找到问题的解决办法.

对于第2个问题,通过windows平台测试,发现windows平台下的BQQ,也无法通过VPN登陆内网,估计是服务器的配置上可能有问题.等重新检查服务器的配置后才能确定了.

随便翻了两页书,发现Xwindow的结构还是挺有意思的,负责控制画界面和硬件打交道的部分是server,应用程序是client,

2006年9月25日

FC4配置网络摘录

以下是从Linux伊甸园论坛 上看到的帖子,对我配置Linux Fc4帮助很大。感谢作者gt4317

【原创】FC4 安装配置过程(打魔兽,上QQ2005)要求加精

自从上次安装了QQ为了能用wine再装一遍,折腾了很长时间,FC4装上快3个星期了,基本被驯服并且愿意为我工作了。鄙人花了近300个小时的时间。现在写个安装手册,强烈要求版主加精,希望有人愿意看。

1、安装FC4
光盘安装是傻瓜化安装,我就不说了,安装过程中出错自己解决。
下载fedora core 4 4个iso文件,下面将的是硬盘安装方法。为了少打几个字母,我把4个文件放在
d盘的d:\fc4下的1.iso,2.iso,2.iso,4.iso

将1.iso中的isolinux解出到d:\fc4\boot
然后,去红旗盘中找了个loadlin.exe(网络上到处都是)
建立boot.bat
loadlin vmlinuz initrd=initrd.img ramdisk_size=64000 %1 %2 %3 %4 %5 %6 %7 %8 %9
上述文件全部放在d:\fc4\boot下
然后,使用98盘启动(只要是纯dos就行)
d:
cd fc4
cd boot
boot
然后系统控制全被交给你内存虚拟盘中的linux并且开始了安装。
语言我选的是US,键盘US,然后选择硬盘安装。然后用上下光标移动到/dev/hda5输入fc4
然后就开始安装了。再次说明一下。
/dev/hdaX 是第一个硬盘,第二个硬盘是/dev/hdbx
每个硬盘的主分区是1-4,第一个硬盘就是/dev/hda1-4如果有了扩展分区,那么下面的逻辑驱动器是从5开始的。如果你的硬盘是一个主分区3个逻辑驱动器,那么编号分别是
/dev/hda1 ->c:
/dev/hda5 ->d
/dev/hda6 ->e
/dev/hda7 ->f

然后的安装过程自己看把,一般没有问题。
安装完成的向导中,建立一个非root用户。我建的是admin
一定要建,早晚都要用,现在建更好。
装完了吗??恭喜你,入门了。

2、安装nvidia的显卡驱动。
FC4的显示驱动安装和FC3稍微有点不一样。ATI的自己研究吧
还有就是装了nvidia的驱动后,鼠标光标旁边的杂点也不见了,一般的屏幕偏移现象有消失了并且打开了3d的opengl支持。
显卡的驱动一定要装,不然后面说的游戏速度慢不要再问我。
下载nvidia的驱动,放到tmp(推荐,避免某些不可预知的权限问题)下。
/tmp/NVIDIA-Linux-x86-1.0-7667-pkg1.run
在安装前确保安装了
GCC,compat-gcc,libstdc++,compat-libstdc++,kernel,kernel-devel
然后更改/etc/selinux/config文件
将SELISELINUX=enforcing加个#注释
再加一行
SELINUX=disabled
然后重新启动你的电脑
起来后用ctrl+alt+f1切到控制台,使用root登录,一应要用root
然后使用init 3切换到单用户模式并强行关掉gnome
然后cd /tmp
./NVIDIA*.run
执行安装程序,过程中如果提示没有没有识别出你的kernel并且要上nvidia的网站下更新版本的时候选NO其余都是YES/Accept
安装完成后,把刚才的/etc/selinux/config文件改回来,另外修改/etc/X11/xorg.conf
把启动modules中的"dri"的一行去掉
然后把驱动中有"nv"的地方换成"nvidia"
保存,退出
然后执行fixfiles relabel之后有个几分钟的等待。然后重启,重启过程中有个地方也有大概10分钟的等待,等着吧,他在重新relabel以便selinux
然后进gnome的时候出现了nvidia的logo就成功了。

如果此时的屏幕还有偏移,开个终端运行xvidtune然后调整,然后apply预览一下。调好后选show把参数显示出来,然后在/etc/X11/xorg.conf中,显示器的那节中以下列方式加上一行

Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "MIRECHANG 77"
DisplaySize 320 240
HorizSync 30.0 - 71.0
VertRefresh 50.0 - 160.0
Option "dpms"
ModeLine "1024x768" xxx xxx xxx xxx xxx xxx xxx xxx xx xxx xxx xxx
EndSection
然后重启你的x就OK

3、访问NTFS分区
下载
kernel-module-ntfs-2.6.11-1.1369_FC4-2.1.22-0.rr.6.4.i686.rpm
然后rpm -ivh kernel*.11*i686.rpm 安装该文件

3、自动加载windows下的分区
我有c,d,e,分别是hda1,hda5,hda6,其中c是ntfs的。
在/mnt下建立目录
mkdir c
mkdir d
mkdir e
然后修改/etc/fstab
加上下列几行
/dev/hda1 /mnt/c ntfs iocharset=utf8
/dev/hda5 /mnt/d vfat iocharset=utf8
/dev/hda6 /mnt/e vfat iocharset=utf8
然后重新启动计算机

4、美化中文界面。
上面已经加载了ntfs的分区,不错,那个就是我的windows的安装盘。
将windows/fonts/ 下的中文字体,simsun.ttc是必须的,其他的自己看着办。复制到 /usr/share/fonts/chinese/TrueType下。然后更改配置文件。如果不想该配置文件先把上述目录清空了在将中文字体复制进去 就行了,我原来就是这样做的,但是该配置文件更保险。
修改/etc/fonts/fonts.conf
看见下面一段一段的,整个文件****有6断

Times
Times New Roman
Nimbus Roman No9 L
Luxi Serif
Sazanami Mincho
Kochi Mincho
Simsun #像这样,把Simsun这行加在系统默认所有中文字体的前面。
AR PL SungtiL GB
AR PL Mingti2L Big5
Baekmuk Batang
serif
总共有6段,全部修改完,再把首选项中的字体中的大小改为9。然后注销,重新登录,然后字体近乎完美,和windows已经差距不大了,某些地方比windows更漂亮。比FC中好多了。

5、安装输入法
FC4自带的iiimf有点.....我更喜欢scim
那么装吧,我这个方法首先要保证能上网并连上了。(怎样配制PPPoe上网不要我说了吧)
开个终端然后
yum remove iiimf*
删除原来的输入法,*一定要跟,*是什么意思大家都应该知道吧,和ls中的用法一样。
然后
yum install scim*
安装scim,这是完全的安装,如果要选择一下先用yum list scim*看一下有些什么再分别安装,反正也不大,几个M就完全安装了
然后在配置一下。去首选项中的更多首选项中的scim的配置中,把不用的输入法前面的勾去掉。省得以后ctrl+shift切换输入法使用次数

6、播放MP3
到网络上下个bmp装上就可以了全名是beep-media-player
然后安装它的mp3,wmv的插件。

7、播放rmvb
FC4自己带的helix基本不能放东西。到real.com上下个
RealPlayer10GOLD.bin
然后给执行权限,也可以点右键属性可执行的地方打个勾
chmod a+x RealPlayer10GOLD.bin
然后./RealPlayer10GOLD.bin然后自己看着办

8、配置游戏
鄙人非常喜欢玩游戏,如魔兽,CS
这里使用的是cedega,他对游戏的支持远远比wine好,特别是3D加速。但是cedega是要收钱的。我用的是盗版的,不要告我哦。
wine我也再用,等下你们就知道了。
下载cedega 4.3的rpm安装包,然后安装,不要告诉我你不会装rpm
然后就OK了,例如运行魔兽

开个终端然后cedega War3.exe然后就OK了,速度和windows 下基本没有差别。

9、配置QQ2005

这是最麻烦的东西了,我安装过程中花的时间最长的就是这个。对wine版本控制的要求几乎到了疯狂的地步,我敢保证你我高诉你的方法能用,并且是独门秘籍。你在整个互联网上都搜不到,我光这个东西花了近150个小时。

首先安装wine注意版本,我用的是最新的20050628

还记得我叫你建的非root用户吗,现在就要用,如果没有建,那么赶快useradd -g root xxxxx一个
下面的安装我一直也必须使用admin用户,非root ,一定是重启然后用非root用户登录的,不能su xxxxx,切记

一定要是这个版本,不信你就走这瞧,并且不能下rpm一定要用源码自己编,现在还没有for FC4 的rpm
下载源码,然后安装,安装也是有学问的,不要一来就configure 然后make && make install 如果你是那样装的,我敢保证你很麻烦。
下载源码包,解压
然后进入cd wine-20050628
然后安装,一定用我这种方法
./tools/wineinstall
输入上面的命令,然后它就自动configure/make depend/make/make install了
慢,我的爱机跑了近半小时然后提示是否要建config文件选是,其他的自己看着半,
如果中途出错了,检查你的系统。如果还是不行,那么很遗憾,用装不上QQ了。

然后安装wine-config-sidenet
到sidenet的网站下,网址我记不清了,自己google一下。
是个tgz的文件,然后cp到/tmp下,解压。

然后最重要的是dcom98.exe和mfc40.dll千万不能用2000或xp下的版本。它的readme中有地址,到微软网站下。
然后解压出dcom98.exe和mfc40.dll放在刚才解出的/tmp/wine-config-sidenet目录下
然后./setup运行
提示语言时输入cn回车
选安装内容的时候选3
是否装ie输入y
是否装dcom98输入y
是否装media player 7输入n
其他的一般都是y
然后,它就自动备份了你的/home/admin/.wine目录,自动下载安装,安装速度看你的网络情况和机器配置,期间最好不要动你的机器,不要做任何操作,死了可别怪我没有告诉你。ie的安装过程和windows一样,自己装吧.
我的机器跑了将近半个小是,然后OK了,它会自动启动你的ie看看是否能上网,如果能上,你就基本成功了

最后下载qq2005beta2.exe放在你的虚拟c盘中,我的是/home/admin/c下。(很重要)
然后wine qq2005beta2.exe
然后像windows下一样的安装。装完就能运行了

顺便说一下,运行的速度很慢,不要以为它死了。如果你没有特殊要求,建议使用lumaQQ


上面就是我近300小时的心血。
希望能帮助大家,有的方法希望能有抛砖引玉的作用,如果你能顺利的完成上面所有步骤的安装,那么,这个你实际已经能使用FC4代替windows下的大部分操作了。