| 上次就想把Wordpress和Drupal做一个对比,这次补上。 Wordpress和Drupal都是目前比较流行的开源CMS,用户数量也比较多。以下将从比较常用的几个方面进行比较。
个人觉得,两个系统都各有所长:
|
2009年5月4日星期一
说说Wordpress和Drupal
2009年4月21日星期二
Oracle+Sun=?
刚刚得到的消息,Oracle以每股$9.50的价格,总计74亿美元收购了Sun。具体官方报道
上回说到IBM的收购案,被IBM收购可以看作对SUN的一种讽刺甚至于侮辱。在一次次的谈判无果之后,忽然间传出了这么一条冷门消息。MS说明与IBM谈判是假,Oracle是真啊。
Oracle收购Sun之后,Java的悖论总算不会发生了,Oracle一直梦想的"进军操作系统"也得以实现。Sun呢?有了Oracle作为摇钱树,系统整合中又多了数据库这一块的业务。看来,我们又一次见证了另外一个IBM的诞生。
整合以后的Mysql如 何?mysql作为独立的一部分业务,本身就有oracle的股份存在。同时,mysql和oracle也不存在市场竞争(最终用户是不同的) 对于此次收购本人认为对于mysql的影响不大。即便Oracle不需要Mysql,Mysql最有可能也不过就是交由社区维护,无非由一个.com变成 了.org而已。
总之,祝今后的新Oracle一路走好!
2009年4月14日星期二
Mysql的几个设置值
mysql数据库的优化――老声长谈的话题,总是有那么多的话题好谈。闲来无事,谈谈几个关键优化参数的设置问题。注意的是,本文主要针对于MyISAM引擎,其他的,日后再吧。
在此之前,如果对mysql的命令和配置不很熟的情况下,phpmysql是必要的。
首先,到状态选项栏,拉一个系统状态表下来,或者执行mysqladmin variables extended-status �u root �p ,同时计算下系统的uptime.
配置文件一般保存在/etc/my.cnf中,直接修改其中的内容即可。
此外,我的设置中还有如下内容:
skip-networking #不使用网络连接
skip-innodb #不使用innodb引擎
thread_concurrency = 4 #这个数值等于cpu核心数x2
key_buffer_size参数的设置:索引缓冲池大小,决定了处理索引的速度。官方文档说最多这将会有238%的性能提升。什么,你的表不加索引?来人啊,把他拖到这个页面。
- 算法一:把系统中所有在用的表的索引加起来,个人习惯取一个最接近此数的2的n次方。如32M,64M,128M……
- 算法二:设置到Key_reads :Key_read_requests 至少应该1:500以上,越大越好,例如我的:
[root@www ~]# mysqladmin variables extended-status -u admin -p |grep Key_re
Enter password:
| Key_read_requests | 7335599 |
| Key_reads | 9137 |
两种方式随个人喜好啦,个人习惯用后面的方式进行配置。
query_cache_size:返回结果缓存,数据库会将返回值缓冲,当然会快,如果想要强制关闭该功能,可以在sql中加入SQL_NO_CACHE。
[root@www ~]# mysqladmin variables extended-status -u admin -p |grep Qcache
Enter password:
| Qcache_free_blocks | 115 |
| Qcache_free_memory | 27422464 | #剩余的缓冲空间
| Qcache_hits | 15257 |
| Qcache_inserts | 11492 |
| Qcache_lowmem_prunes | 0 | #出现缓存过低的此数
| Qcache_not_cached | 29 |
| Qcache_queries_in_cache | 1115 | #缓存的结果数
| Qcache_total_blocks | 2441 |
| Questions | 43849 |
次数值大致算法:最大返回大小x每5分钟查询次数。
原则上,如果内存足够的情况下,可以尽量调大此数值。个人认为 uptime 秒数/Qcache_lowmem_prunes 应该小于300。这意味着至少不是每5分钟系统就报一次缓存过低。
要注意的是配置了此参数的时候,请同时设置 query_cache_type= 1
table_cache:表缓冲数量。
mysqladmin variables extended-status -u admin -p |grep Open
Enter password:
| Open_files | 191 |
| Open_streams | 0 |
| Open_tables | 132 | #打开的表
| Opened_tables | 138 | #已经打开的表
我这边设置的table_cache为512,uptime为2小时,暂时看不出有什么问题,如果系统一开没多久Open_tables就已经等于设置的table_cache的时候,请将此数值再调大。
关于索引:刚才被拖走的兄弟可以回来了^_^
很多人最初接触索引的时候,以为索引越多越快。其实不然,过多的索引往往会拖慢系统,按照惯例索引字段最多只占字段总数的40%。多则无益。
索引字段的类型,尽量选择numeric下属的类型或者date time下属的类型,如果非要用string,可以尝试使用char来取代varchar,很多情况下不影响使用,但性能提升一个档次。
关于内存
经过上面的折腾,内存耗用量应该大有提升。很多人觉得内存占用高了性能会下降――这似乎是windows桌面的问题。要知道,作为一个数据库服务器而言,痛苦的不是内存用完了;而是内存用不掉,IO用光了。 能把内存用的光光但swap基本不动,这才是高明的系统管理员。
正常负载下,mysql的内存耗用要保证大于空闲内存。
sql语句的问题
尽管这不属于系统管理员的工作内容,但要知道,一个到处是select * 语句的程序是绝对会影响系统性能的。
2009年4月13日星期一
关于备份
作为日常工作的一部分,经常性将数据拷来拷去的做备份。久而久之就觉得没有定义备份策略的系统就是一个极度危险以及极度不健全的系统。
然而备份以后又如何呢?
前些日子从箱底找出了高中时期的几张软盘,其中甚至还有一张720K的3寸盘,上面有当时我初学电脑时的见证。打算怀旧一下。于是借来了整个公司唯一的3.5寸移动软驱――这本身已经很是不容易了,幸好没有使用当初学校里的5寸盘保存。然而无一例外都说那句经典的"磁盘未格式化"。手抖,不敢确认,生怕格式化之后所有数据再也找不回来了。几经斗争后,决定放弃。即便能够读取文件,谁又能保证现在的系统能够完美的打开wordstar wps cced 以及Qbasic的文件呢?
曾经说过,一本书在250年之后尚没有影响可读性。但是就目前的存储方案来看,有什么方法可以存放250年以上?纸面备份似乎是唯一的方法。(貌似没有这样的需求)
IT业在不断增加着数据创造的速度,数据复制的速度,同时也在大幅降低着数据媒介的保存时间。正如石刻可以保存上千年,书本只能保存几百年,磁盘的寿命估计也就是那么几年吧。
我们的文化瑰宝,伴随着白话运动丧失了根基,导致了现在只要见过胡适或者鲁迅的人都敢称国学大师;伴随着简体化丧失了韵味,出现了fuck goods这种低级笑话;伴随着网络化和云存储时代的到来,难不成有一天会因为一块硬盘的崩坏而彻底崩坏么?
说说C2C
前不久有人问我,为什么现在不在taobao和ebay上开店了。
其实之前开店的目的很单纯――之前小站提供了很多*nix镜像下载,后来有访客说下载太慢,或者太费事,希望从我这里直接买。仅此而已。后来陆续的处理一些自己的二手硬件以及朋友弄来的东西。
之后,由于种种原因,其中一部分是由于个人原因,没有这个精力去维护这些小店。另一方面,本人实在不敢苟同部分买家、网站以及第三方的做法。
首先要说的是物流方面的问题:小站上本身一套光盘最多也就是卖个5块钱,运费上却经常要出到10~15元。明摆着是给物流公司做销售员的活。摆着为访客服务的态度,不赚钱也好,赔钱也好,我都认了。可那个时候的物流公司简直可以用"非常不专业"来形容。答应买家当天肯定到,早上8点刚过,打电话给物流公司取件,加急当天件,本以为9点钟肯定来的了取件。谁知一拖拖到了下午4点,其间电话催了不知到多少次,总算来了。上来就说:"你们要发当天是吗?"拜托,用点心想一想,4点钟都过了,除了你们可以多赚一倍的钱之外,当天件有意义吗?这里且不说损坏或丢失或延误的情况,这些似乎已经成为可以接受的问题了,虽然也经常碰到。
接着就是买家的素质问题:这个其实作为卖家而言,本无可挑剔的。可有些买家真是太把自己当上帝了。5块钱买了一套盘,甚至根本没买东西,不管现在是几点,愣是打电话询问这询问那。搞得我比redhat的全球支持中心都累,还要7×24x365的支持。问题在于,买redhat服务的顾客大多都懂一点技术的,可我的上帝们有些连怎么用光盘启动机器都不会。实在憋不住了,说了句很重的话。OK,惨了,人家会以给差评或者退货相威胁。钱赚不到,气受了一包。
最后是所谓不良竞争或者恶意买家的问题:这个就是购物网站的责任了。本身小店是不赚甚么钱的,也是我搞不懂了,为什么偏偏不赚钱的生意也有人嫉妒――恶拍的、恶评的、拿了东西不给钱的、不给钱还给差评的,嗑瓜子掉出个臭虫,什么人(仁)都有――几乎每个月都有几次。应付这些问题,实在不值。
作为买家,咱们也不妨说下:假货横行的问题,恐怕是最主要的。在C2C上买过特别是服装类的朋友都知道的定式是"照片里是原版的,卖的是翻版的"。曾经在网上看到200块的"劳力士"对表,询问了一下,对方还敢兴势旦旦的跟我保证是"可以走的真货"。我这个晕。
经常看到买家对于c2c网站的投诉也好,抱怨也好,仿佛买家是弱者。通过我个人的实际经验得到的结论,其实C2C网站很多情况下卖家才是弱者。买家反正是受《消费者保护法》保护的,永远不吃亏,卖家呢?个人觉得,最终的结果会是B2C在最终零售市场上压到性的取代目前的C2C。
2009年3月29日星期日
Sun的身前身后事
当大家都在关注Sparc平台,Java中间件,Solaris操作系统以及一大堆应用的何去何从时,业界的另一个比较有趣的话题逐渐的浮出水面——作为Java下的应用,同时又是IBM竞争对手的Oracle和SAP是否还会继续支持Java?选择继续无疑于与虎谋皮;选择放弃Java,拜托,这么多的客户岂不是要倒戈?
这些只是作为一些题外话,不管今后Sun怎样,不妨总结下Sun的贡献吧。
首先,在开源领域中,Sun的地位可以说是无可撼动的领头羊。目前最大的3个开源项目,分别是Sun主导的opensolaris,Sun主导的Openoffice,以及Sun主导的OpenJava。是不是感觉到了点什么?除此之外,还有Sun支持的mysql也可以说是最为常用的开源系统之一了。
系统集成上,Sun同时拥有了硬件平台,到操作系统再到桌面生产力工具和IDE。可以说目前连微软也是做不到的高度(至少MS没有自己的CPU)。唯一可以与之匹配唯独IBM这个蓝色巨人。然而一旦IBM==SUN,这又意味着什么?
Java的出现也是一大创举。过去企业要做开发,需要BS,CS,甚至于OA等多个开发团队来实现。Java的很空出世,加上Oracle和SAP的协助,对于企业平台而言,数据库之需要一个,平台只要一个,开发团队只要一个,空前的统一!
最后,OpenSparc的标准也成为开源硬件的一大创新性尝试。
window.google_render_ad();
IBM方面呢?
蓝色巨人的最大竞争对手倒下了。白捡了客户,减少了竞争对手。这世界顿时清静了。
控制了JAVA,间接的抑制了Oracle对于DB2,SAP对于Domino的市场冲击。
拿到了SPARC的研发团队,弥补了自己power平台的技术缺失。
…………
难道PowerPC版本的Solaris就是对于现状的预兆?
所谓现代的经济,就是在定期和不定期的执行“破坏性创造”。输赢只在乎破坏力来自何方,来自自己,你是赢家;来自竞争对手,很遗憾,You Lose!
2009年3月26日星期四
关于 load average
很多人都知道uptime命令会得到如下的返回:
12:00:59 up 20:24, 1 user, load average: 0.49, 1.40, 1.61
其中的load average根的3个数字,分别表示系统在1分钟,5分钟和15分钟的平均负载情况。这个数字是系统每5秒钟会自动检测一下活跃的进程数量(即top命令看到的n running),然后得出结果。具体感兴趣的话可以研究下Linux内核中include/linux/sched.h, kernel/timer.c,fs/proc/proc_misc.c
所谓活跃的进程,需要满足:
- 没有被终止或者正在调用wait。
- 不是正在等待I/O操作。
很多网上说这个数字除上CPU的数量如果得到的结果大于5就说明系统在超负荷运转。对于这个结论本人持保留意见。
- 对于双核或者多核的CPU,如果按照1个CPU来计算,那么明显的状况就是对于多核心的不公。如果按照多个CPU来计算,那又是对于多路CPU,甚至是独享内存总线多CPU的不公。对于基于HT技术的"假多核"更是如此。
- 对于不同平台的CPU而言,目前公认的是X86架构"不耐压",特别在于高并发的情况下。本人明显觉得SPARC的架构相比X86在压缩同一个文件的时间更长;但是同时进行多个压缩的时候Sparc的平台占有绝对优势。
- 超负荷的界定:有的系统,在1.5的情况下已经能够感到明显的延时;同样有的系统在10以上还能迅速响应。
2009年3月20日星期五
踩到雷
首先是要伴随perl升级一系列的模块,这似乎也不是难事。然后是执行perl-after-upgrade。一切似乎很顺利。随意习惯性的top了一下,发觉负载已经高达60%以上,而且是邮件系统的MailScanner的进程奇高。考虑到MailScanner引用了perl,很明显的需要restart一下。这时候问题来了。
restart之后,邮件不能正常接收,检查原因,发觉邮件在MailScanner中不停的check。赶紧检查日志,很明显的报错:
MailScanner[66402]: Could not use Custom Function code /usr/local/lib/MailScanner/MailScanner/CustomFunctions/GenericSpamScanner.pm, it could not be “require”d. Make sure the last line of the file says “1
调用万能的google,关键字perl5.8.9 MailScanner,发觉通篇都是与我一样的报错,最新的记录似乎也没多远。貌似是我幸运的踩到了雷。
临时处理方法其实也是非常简单的——退回到perl5.8.8就OK。
关于Postfix RBL设置的问题
rbl的原理就是在拿到对方的IP以后,例如:1.2.3.4,反转后组成域名。例如xbl.spamhaus.org的RBL就会组成4.3.2.1.xbl.spamhaus.org送去DNS解析。正常的IP将会获得一个一个正常的IP回复,黑名单中的IP将会获得127.0.X.X的IP。
一般情况下在Postfix中会做如下设置启用RBL:
smtpd_client_restrictions = permit_sasl_authenticated permit_mynetworks reject_rbl_client xbl.spamhaus.org=127.0.0.4 permit需要说明的就是,至少我在postfix2.4下只有这种方式才会正常RBL,否则的话很容易就block全世界了。测试了几次,发觉并不向网上很多帖子说的那样是由于DNS被劫持引起的。关于127.0.X.X的返回值,可以到RBL的网站上查阅。
同时作为RBL的选择,其实一个就足够了,没有必要反复进行验证。
2009年3月13日星期五
回想安腾
接触安腾并不多,也就是接触了一台曙光的服务器是安腾的芯片,当时的感觉是非常高端的机器了,也许AMD的上述评论一部分出自于商业因素,但安腾不被人看好确实不争的事实。
也许安腾的悲哀正式目前IT的悲哀……
安腾平台的创新在于通用的借口,不管什么样的硬件只要符合标准就不需要做过多的配置,直接与BIOS通信就可以解决,想法不错解决了配置驱动的繁琐问题,但各个厂商似乎出于种种不可告人的理由几乎没有什么像样的产品问世,到头来是Intel在苦苦支撑一个平台的软硬件,后期除了HP几乎没有别的厂家还在卖IA64的服务器——Intel害怕得罪硬件厂商,始终不敢发售自有品牌的服! 务器,只有帮别人贴牌做;DELL以做低端为主,懒得管IA64的事;IBM 、SUN又有自己的Power 和Sparc系列CPU;如果当初HP自己的Alpha没有出现问题的话,恐怕下场还要难看。
安腾,一个在错误的时间、由错误的公司推出的一个本不应该失利的硬件平台。
Oracle DB 10g 中文乱码问题的解决
1. 安装时的乱码
2. 一些应用程序的乱码, 比如 dbca, netca
3. 一些基于oc4j的web应用的乱码, 比如 isqlplus, em
造成这些问题的原因都是一个, 就是这些程序都使用jdk, 相应的jdk(或jre) 使用的字体配置文件 font.properties 中的字体和操作系统的字体或者字体配置文件不匹配. 解决的办法是把两者改成一致.
1. 下载, 解包 ship.db.cpio.gz, 生成目录 Disk1
2. cd Disk1/stage/Components/oracle.swd.jre/1.4.2.0.0/1/DataFiles/
unzip all_except_bin.jar
(这时生成一个 jre 的目录)
cd jre/1.4.2/lib/
mv font.properties font.properties.bak
cp font.properties.zh_CN.Redhat8.0 font.properties
cd ../../../
zip -r all_except_bin.jar.new jr! e/
mv all_except_bin.jar.new all_except_bin.jar
(这么累啊, 其实就是把 font.properties 文件换掉. 这样安装时汉字显示就没有问题了)
3. 如法炮制, 把Disk1/stage/Components/oracle.jdk/1.4.2.0.0/1/DataFiles/sol_bin.1.1.jar
文件里面的font.properties 文件换掉, 创建数据库和执行网络配置时的乱码就没有了. isqlplus 和em 的乱码也解决了.
Xen:用于Linux?内核的虚拟化技术简介
随着对现有软件的改进和 bug 修复,开源世界的变化永无止境。要保持软件总是升级到最新,这可能得作为一份专职的工作。升级软件最难处理的问题之一是:您永远不会真正知道升级完成后应 用程序是否还能够工作。大部分软件打包系统都具备回滚功能,但通常只有这项功能还不够;理想情况下,您应该去测试这些新的升级,并在一个不会破坏任何东西 的环境中去尝试它们。
就像玩耍的小孩子一样,您希望拥有一个属于自己的沙盒,在那里您可以随意做任何事情。
通常通过 虚拟化(Virtualization) (或者“沙盒(sandbox)”)将同一硬件上的应用程序和系统彼此隔离开来。从硬件模拟到完全硬件虚拟化,Linux 支持很多种不同形式的虚拟化。在不断增加的虚拟化技术列表中,Xen 是近来最引人注目的技术之一,它由剑桥大学开发。Xen 值得您关注,因为它具有空前的性能与安全性。
初识 Xen
Xen 是在剑桥大学作为一个研究项目被开发出来的,它已经在开源社区中得到了极大的推动。Xen 是一款 半虚拟化(paravirtualizing) VMM (虚拟机监视器,Virtual Machine Monitor),这表示,为了调用系统管理程序,要有选择地修改操作系统,然而却不需要修改操作系统上运行的应用程序。虽然 VMWare 等其他虚拟化系统实现了完全的虚拟化(它们不必修改使用中的操作系统),但它们仍需要进行实时的机器代码翻译,这会影响性能。

由于 Xen 需要修改操作系统,所以您不能直接让当前的 Linux 内核在 Xen 系统管理程序中运行,除非它已经移植到了 Xen 架构。不过,如果当前系统可以使用新的已经移植到 Xen 架构的 Linux 内核,那么您就可以不加修改地运行现有的系统。
获得 Xen
可以从 Xen 的项目主页上获得它的源代码(请参阅 参考资料 部分的链接),但是,如果已经在使用某个 Linux 发行版本,那么您或许能够通过软件包升级或者安装来获得 Xen。这些主流发行版本都包含了 Xen:
- Fedora Core
- SUSE Linux
- Debian
- 可以获得位于 Gentoo's bugzilla 的实验用的 e-builds。
检查您的发行版本 —— 如果它不在这个列表中,那么您可能只能直接使用源代码。除了安装过程特定于发行版本之外,在任何发行版本上,Xen 中的所有工作都是相同的。
使用 Fedora Core
我有一个可以使用的 Fedora Core 3 安装,为了保持本文的简洁,我将讨论如何在 Fedora Core 上安装和运行系统。
尽管软件包只是在最近才开始进行开发,但 Fedora 已经为大量 Xen 用户所使用。由于有很多人尝试在 Fedora 上使用 Xen,所以您可能成功地获得大量的在线帮助。
安装 Xen
为了帮助您迅速上手和使用,本节着重指出了 参考资料 部分中 Quick Start Guide 的要点。由于 Fedora 中正在融入 Xen 更新,所以随着时间的推移, Quick Start Guide 将很可能会发生变化,希望 wiki 会保持对这些变化的更新。
首先,为基础机器(base machine)进行最简化的服务器安装。这台基础机器是您的系统管理程序,将不会运行任何服务器应用程序。您将可以在运行于此机器之上的 Xen 服务器中安装所需要的软件包,所以现在不需要安装想要运行的应用程序。
系统开始运行后,您应该将其更新到 Fedora 的最新开发版本(称为 rawhide )。要完成此任务,请遍历 /etc/yum.repos.d/ 目录中的元素,将除了 fedora-devel.repo 以外的所有元素都改为 enabled=0 ;将 fedora-devel.repo 改为 enabled=1 。
建立了 yum 储存库(repository)后,需要将机器更新到 rawhide,以便您可以开始使用最新发布的 Xen。
清单 1. 将 FC3 更新到 rawhide 并安装 Xen 软件包| #yum update #yum install xen kernel-xen0 kernel-xenU |
然后,创建一个将要使用的虚拟文件系统。
清单 2. 格式化并建立 Xen 服务器文件系统| #mkdir -p /xen/base #dd if=/dev/zero of=/root/base.img bs=1M count=1 seek=1024 mkfs.ext3 /root/base.img #mount -o loop /root/base.img /xen/base |
格式化并挂载 Xen 服务器文件系统之后,下一个步骤是安装必要的软件包,以便在这些软件包上运行某些程序。为了在 Xen 服务器上运行一个 Web 服务器,您应该安装一组 Web-server 软件包。(警告: 这将需要一段时间!您可以先 运行 yum,然后出去散散步。)
清单 3. 安装 Xen 服务器软件包| #yum --installroot=/xen/base -y groupinstall web-server --enablerepo=base --disablerepo=development |
(现在应该去散步了。)
现在已经安装了所有需要的软件包,不过您应该去查看一个简单的 fstab 文件,这个文件会告知 Xen 服务器它们将要获得根(root)设备 sda1,将该设备作为根。根设备实际上是来自系统管理程序的一个虚拟的设备,但您的服务器不会知道这一点。
清单 4. Xen 服务器 fstab 文件| /dev/sda1 / ext3 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 |
将这个文件写入 /xen/base/etc/fstab。如果不是标准的 Fedora 安装,那么不会为您创建任何 fstab。预计 Fedora 的未来版本会包含处理此问题的工具。
最后,为了让系统正确地运行,您应该做一些处理。目前,Xen 使用 initrd 时仍然存在问题,所以,如果想要启动系统,则需要为自己创建一些设备代码。然后,为了让程序平稳运行,删除 TLS 程序库会有所帮助,因为目前它们与 Xen 冲突很严重。完成这个步骤后,可以卸载这个文件系统。
清单 5. 为开始运行所做的最后的处理| for i in console null zero ; do MAKEDEV -d /xen/base/dev -x $i ; done mv /lib/tls /lib/tls.disabled mv /xen/base/lib/tls /xeb/base/lib/tls.disabled umount /xen/base/ |
运行 Xen
既然已经细心地手工建立起了客户系统,那么您现在就可以真正重新启动机器,开始使用 Xen 内核。您可能将会看到比平时多得多的打印输出,并且您还会看到关于 TLS 程序库(上一节中您删除的那个会出问题的程序库)的可怕的消息。
Xen 要求为运行的每个服务器准备配置文件。尽管您可以为所有服务器创建一个惟一的动态配置文件,但我还是建议您创建两个静态的配置文件,各用一个。如您所见,磁盘标签告诉服务器您的文件映像是 sda1 设备。也指定了您所使用的 xenU 内核,以及服务器客户将要获得的内存。
清单 6. Xen 服务器配置文件| /etc/xen/base kernel ="/boot/vmlinuz-2.6.10-1.1141_FC4xenU" memory = 64 name = "BaseServer" nics = 1 disk = ['file:/root/base.img,sda1,w'] root = "/dev/sda1 ro" /etc/xen/test kernel ="/boot/vmlinuz-2.6.10-1.1141_FC4xenU" memory = 64 name = "TestServer" nics = 1 disk = ['file:/root/test.img,sda1,w'] root = "/dev/sda1 ro" |
要启动并运行服务器,首先要使用命令 xend start 启动 Xen 服务,然后使用命令 xm create base 通过基本配置文件创建 BaseServer。通过这些步骤,您将进入 Xen 客户系统中,可以看到该系统已经启动起来。不论何时,如果您想跳出客户系统控制台,那么按下 Ctrl-] 组合键就可以直接返回到系统管理程序控制台。
使用 Xen
现在您已经用了一些时间来编辑配置,并建立了运行两个 Xen 服务器的系统。所有这些艰苦的工作完成后,接下来做什么?
现在您拥有了一个系统的两个副本,它们运行相同内核,在同一台机器上被虚拟化。如果 BaseServer 代表的是您希望正常运行 Web 服务的稳定环境,那么 TestServer 代表的就是 Fedora rawhide 所提供的最新软件更新。您可以随意保持对 TestServer 系统的升级,尝试所有新版本的软件更新 —— 当您认为它足够稳定时,可以将 TestServer 作为 BaseServer 来运行。
设置 BaseServer
BaseServer 运行时,是修改将要运行的 httpd 服务的配置的好时机。您应该将 ssl.conf 文件移出 /etc/httpd/conf.d/ 目录,以此来停用 ssl;否则,您将需要为服务器生成证书。另外,可能需要向系统添加一个 apache 用户。
Xen 系统管理程序已经自动提供了一个可以使用的虚拟网络设备。如果您可以在这个设备上运行 dhcp,那么只需要执行 dhclient eth0 ,BaseServer 就会获得 IP 地址。
设置 TestServer
设置了 BaseServer 的配置之后,在 BaseServer 控制台中执行 poweroff 以关闭该实例。如果您已经从 BaseServer 注销,那么可以使用 xm console BaseServer 重新进入它。
现在,通过 cp /root/base.img /root/test.img 复制基础映像,以便获得同一文件系统的副本。当运行 xm create -c test 时,它会运行与 BaseServer 相同的服务器,但是它的名称是 TestServer。登录到 TestServer,然后像您在 安装 Xen 那一节中所做的那样启用 rawhide 支持,然后运行 yum update 。
TestServer 实例拥有与 BaseServer 完全相同的配置,但是您已经升级到了 Fedora rawhide 所必须具备的最新的软件包。在此,您可以查看 Web 站点是否仍然可用。
关于 Xen 还有哪些内容?
我希望这些简短的说明和简单的示例能够帮助您安装和运行 Xen,这样您就可以尝试使用它。为了让您迅速地熟悉 Xen,我没有介绍如何利用 LVM 与快照(snapshots)等功能,也没有介绍如何完成 Xen 服务器从一台机器到另一台机器的网络迁移。但是,既然您已经了解了 Xen 所具备的一些优势,请浏览下面的 参考资料 ,学习一些如何使用它的更为多变的技巧。
检测Linux硬件状态
中央处理器状态的检测 中央处理器是Linux主机的核心硬件。我们看一下Linux根目录下:/proc目录的内容。这个目录中的文件其实不是存放在磁盘上 的。该目录的文件系统叫做proc文件系统,是系统内核的映像。也就是说该目录里面的文件是存放在系统内存里面。它以文件系统的方式为访问系统内核数据的 操作提供接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息(如进程)是动态改变的,所以用户或! 应用程序 读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。
CPU的信息存放在"cpuinfo"文件中。我们也可以使用以下命令来查看:
#cat /proc/ cpuinfo
以下以笔者的AMD Athlon 1100为例:
processor : 0 |
一定要确保CPU硬件没有BUG,并且被系统认别出具体型号。以上只是显示CPU的基本情况,对于实时情况我们使用mbmon软件检测CPU,
1.软件下载:http://www.nt.phys.kyushu- u.ac.jp/shimizu/download/xmbmon203.tar.gz,http://www.nt.phys.kyushu- u.ac.jp/shimizu/download/README-xmbmon203.html。
软件下载后先看一下:
README-xmbmon203pl1.html
查看一下软件是否支持你的主板芯片。
2.安装软件:
gunzip xmbmon203.tar.gz |
上面内容表示显示主板芯片是威盛的VT82C686A/B。下面在命令行下运行。
./mbmon |
上面显示了中央处理器温度为42.1,电源温度为33.0,主板温度为24.2;CPU风扇转速为5357转/分钟;CPU核心电压为1.78伏特,输入电压为12.19伏特、3.41伏特, 4.93伏特。缺省情况下,以上内容五秒钟更新一次记录。
Mbmon在X窗口下运行,运行结果如图1所示。
./xmbmon
图1 mbmon在X窗口下运行
4.远程监控
Mbmon最新版本还提供远程监控的功能:
./mbmon-p 22
其中"-P 22"表示打开端口22,这样你就可以使用Telnet、SSH等远程工具连接Linux主机来检测CPU状态了。
硬盘磁道检测
硬盘物理坏道是硬盘的所有Linux硬件故障中最让人头痛的。它轻则使你的Linux计算机频频死机,重则让你的所有数据�! �为乌有。现在 出厂的硬盘(1993年以后)基本上都支持SMART(Self Monitoring Analysis and Reporting Technology)自动检测分析及报告技术。SMART技术可以对硬盘的磁头单元、盘片电机驱动系统、硬盘内部电路以及盘片表面介质材料等进行监测。 当SMART监测并分析出硬盘可能出现问题时,会及时向用户报警以避免计算机数据受损失。SMART技术必须在主板支持的前提下才能发生作用,而且 SMART技术也不能保证能预报所有可能发生的硬盘故障。SMART(SFF-8035i)是硬盘生产商们建立的一个工业标准。这个标准就是在硬盘上保存 一个跟执行情况、可靠程度、读找错误率等属性的表格。所有属性都有一个1byte(大小范围1-253)的标准化值,还包含另一个1byte的关键阶段 值。如果属性表格内某个数据接近小于或达到关键阶段值,表明硬盘工作不正常了。
Smartmontools是一个L! inux下硬盘检测工具,主页为http: //smartmontools.sou! rceforge .net,下载链接:ftp: //fr2.rpmfind.net/linux/sourceforge/smartmontools/smartmontools-5.1-18.i386.rpm。
1.软件安装:
rpm-ivh/smartmontools-5.1-18.i386.rpm
软件安装后会在/usr/local/ 目录下产生程序:smartctl,先检测硬盘和主板是否支持SMART技术(见图2)。
smartctl -i /dev/hda7
图2 检测硬盘是否支持SMART
图2显示笔者的硬盘支持SMART,型号是:ST320414A(希捷的酷鱼III,72000RPM,2兆缓存)。
2.全面检测硬盘
运行以下硬盘检测命令:
smartctl -A /dev/hda7
图3 硬盘物理逻辑状态
图3是检测到的硬盘信息,其显示的信息根据你的硬盘厂商不同而不同,其中1! -202行代表硬盘的不同物理性能,纵列代表硬盘的逻辑状态。
FLAG是标记,标准数值(VALUE)应当小于或等於关键值(THRESH)。WHEN_FAILED 代表错误信息,图3中的WHEN_FAILED纵行是空行,说明硬盘没有故障。如果WHEN_FAILED显示数字,表明硬盘磁道可能有比较大的坏道。
Smartctl有十几个参数,详细情况可以下面的命令查看:
smartctl --help
3.高级应用
我们可以用crontab命令实现每天定时的扫描:
(1)首先建立一个文件,文件名称Linuxect(名称自己设定):
#crontab -e
(2) 文件内容:
05 16 * * 5 smartctl -A /dev/hda7
用vi编辑后存盘退出。使用crontab命令添加到任务列表中:
#crontab Linuxect
这样系统内所有用户在每个星期五的16点05分会自动进行扫描。
内存检测
通常我们会觉得内存出错损坏�! �几率� ��大,并且认为如果内存坏了,那么它是不可能通过主板BIOS的开机自检程序的。事实上这个自检程序的 功能很少,而且只是检测容量速度而已,许多内存出错的问题并不能检测出来。如果你在运行程序时不时有某个程序莫名其妙地失去响应;打开文件时偶尔提示文件 损坏,但稍后打开又没问题......那你应该考虑检测一下你的内存了。
1.使用Linux命令检测
(1)在命令行使用"Free"命令可以监控内存使用情况
#free |
上面给出了一个256MB的RAM和512MB交换空间的系统情况。
(2)使甩vmstat命令监视虚拟内存使用情况:
# vmstat |
Vmstat()命令是一个通用监控程序,是Virtual Meomory Statistics(虚拟内存统计)的缩写。如果使用Vmstat命令的时候没有使用它的任何命令行参数,你将得到一个一次性的报告。Vmstat命令 报咨的主要的活动类型有进程(procs)、内存(以千字节为单位)、交换分区 (以千字节为单位)、来自块设备(硬盘驱动器)的输入输出量、系统中断(每秒钟发生的次数)、中央处理单元(CPU)分配给用户系统和空闲时所分别占用比 例。
2.使用工具软件检测
Memtest86是一款免费的内存测试软件,测试准确度比较高,内存的隐性问题也能检查出来。可以到http://www.memtest86.com/页面下载它的最新3.0版本。
下载链接:http://www.memtest86.com/memtest86-3.0.tar.gz
软件安装:
# tar xzvf memtest86-2.5.tar.gz |
然后,将一张 3.5 英寸空白磁盘插入到软盘驱动器,并输入:
# make install
另外也可以下载http://www.memtest86.com/memtest86-3.0.iso.gz 文件,解压后是一个IOS文件,刻录到光盘,再来启动计算机。
重新启动计算机,在BIOS中设定用软驱启动即可,软件运行界面见图4。
图4 Memtest86软件运行界面
图4中可以看到当前系统所采用的处理器型号:AMD-Duron和频率:1056,以及CPU的一级缓存(128k)和二级缓存 (64k),系统物理内存的容量(64)和速度(315MB/s)。最后显示的是主板所采用的芯片组类型。在系统信息的右侧显示的是测试的进度。 "Pass"显示的是主测试进程完成进度。"Test"显示的是当前测试项目的完成进度。"Test #1"显! 示的是目前的测试项目。"WallTime"显示测试已经耗费的时间,在这一排数据中"ECC"一栏中,显示的是当前内存是否支持打开ECC校验 功能。"TEST"显示的是测试的模式,有"标准"和"完全"模式可供选择。"
设定检测选项:我们可以单击"C"键打开Memtest86的设置菜单,接着单击数字键"2"选择"Test Selection"选项,再单击数字键"3"选择"All Test"选项打开完全测试模式(如图5所示)。
图5 设定检测选项
主要的内存突发问题(比如"死亡"位)将在几秒钟内检测出来。如果是由特定位模式触发的故障,则需要长时间测试才能检测出来。如果你的内存容量比较大,就需要有耐�! �等待检测结果。笔者使用的测试内存容量是64MB! ,PC133 。使用完全检测模式使用的时间是24分钟。
小结
中央处理器、硬盘、内存是Linux系统的核心。Linux 负有盛名的特点之一是其非凡的稳定性。如果您的硬件有缺陷或配置不正确,那么系统内的数据的安全就危险了,所以实时检测它们的状态是重要的。
drupal简介
优秀的CMS系统包括:Drupal、Typo3、XOOPS、TikiWiki、Mambo、PHP-Nuke等,具体见:
http://www.opensourcecms.com/
目前国内比较流行的CMS包括Mambo和XOOPS,他们的国内社区见:
http://www.mambochina.net/
http://xoops.org.cn/
Drupal是一个新的CMS系统,它虽然没有Manbo流行,也没有XOOPS强大,但却是一个非常易用的内容管理系统,可做为个人! 或大型网站发布、管理、组织不同内容的平台,包含了广为人知的weblog、论坛、投票、新闻聚合、站内搜索、电子商务等功能。
Drupal应该翻译成什么呢?呵呵,觉得还是翻译为“水滴”比较好。Drupal这个词其实是荷兰语Druppel的英语发音,而Druppel在荷兰 语里面是Drop也就是水滴的意思。Drupal的编写者最初选择这个词实在是意外,他本来想注册一个名为“Dorp”的域名,Dorp在荷兰语里是“小 村庄”的意思,英语里其实也有这个名词,但是他一不小心犯了个错误,于是就注册成了Drop,于是也就有了后来的 Drupal。呵呵,所以汉语翻译成“水滴”还是蛮贴切的,听起来也不错了。
有的人把Drupal当作是blog系统,我一开始也是 这样认为的,其实这只是Drupal的一方面的应用,Drupal是一个功能强大的content manage s! ystem(cms),在功能设计上它仿照了phpnuke,xoops�! �的模� ��化方式,界面上仿照了blog模式。这个程序以极少的代码实现了非常强 大的功能。很多人用“神奇” 两个字来形容它,它是一个完全开放源代码的程序,所以吸引了众多PHP爱好者的目光,很多PHP高手参与了它的开发行列中来了,开发速度非常块,几乎两个 月出一个新版本,modules和skins也越来越多。从官方站点有时上千人的在线情况就可以看出它的受欢迎程度。
在这里可以下载Drupal:
http://drupal.org/
我们的非官方 Fedora FAQ
注意: 这里不是官方的技术支持也不是红帽子公司的服务. 这里可以解决你最棘手的问题,但是它们也可能使你暴跳如雷. 我不能给你任何承诺. YMMV.
如果在这里找不到你的问题的答案
- 请到这个论坛提问FedoraForum.org.
- 搜索 Linux Google.
- 或者看看 FedoraNews Updates -- 他们会每隔几周对常见的问题和答案做一个总结.
- 或者到 Fedora 的邮件列表提问. (你也可以查找 以前的记录.)
- 或者加入 #Fedora IRC 频道.
如果你能提供我们缺少什么FAQ或者你发现了我们需要更新或更改的地方,我们欢迎您 献计献策!
如果你还是一个LINUX新手
我们已经对大多数的入门问题做了解答 Fedora 入门 FAQ. 即时你已经有了一些经验,你仍然可以在这里找到一些有益的提示.
目录
关于 Fedora
- Fedora Core 3到底是什么?
- Fedora 和Red Hat 企业版的区别在哪里?
- 它是一个不稳定的版本吗?
- 它已经正式发行吗?
- 如何 得到一份拷贝?
- 如何找到随Fedora Core 3 发行的各种程序的一个列表?
- up2date还能用吗?
- 是不是可以安装在ReiserFS, JFS, 或者 XFS的文件系统上?
- Fedora 是否支持使用64位 (AMD-64或者Intel EM64T) CPU 的电脑?
- Fedora 是否支持Mac (PowerPC)?
- 为什么找不到Fedora Core 3制作安装盘的软盘镜像文件(image)?
获得和安装 Fedora 的软件
- 哪里可以找到Fedora的软件 ?
- 如何安装Fedora下的软件 ? (如何使用yum 或者是 RPM包)(更新于2005年2月6日)
- Fedora下面有没有类似 apt的东东?
- Fedora Extras(额外软件包)在哪里可以找到?(更新于2005年2月6日)
- 红帽子的升级服务器 太慢了! 有没有别的选择?
- 如何安装 Java?
- 如何安装网页浏览器的Flash插件
- 如何在网页浏览器里查看PDF文档?
- 如何在网页浏览器里看 电影?
- 如何使用MSN /AIM/ICQ/Yahoo 这样的即时通讯软件?
- 如何安装字体? 我可以用windows的字体吗(.ttf)?
- 如何获得硬件在Fedora下的驱动程序 ?
问题和解决方案
- 我从RPM包得到NOKEY 的警告信息 或者说在使用 Apt /Yum / up2date!这样的工具时收到类似gpg signature error的错误信息. (更新于2005年2月6日)
- 如何开启我的ATI Radeon 显卡的3D支持?(更新于2005年2月6日)
- 如何使我的 nVidia 显卡支持3D? (Updated 13 Dec 2004)
- 我的电脑装了 nVidia 显卡,我的电脑在 启动时死锁.
- 安装程序的 安装介质检查 报告说我的安装光盘有问题!
- 我碰到了奇怪的 安装问题.
- 如何使用 XMMS 播放MP3?
- 如何使用 Rhythmbox 播放 MP3?
- 如何在 KDE MP3 播放器中播放MP3,例如 Noatun 或者 Juk?
- 如何读取 NTFS格式分区 (Windows NT/2000/XP/2003) ?
- 我不喜欢新的文件浏览器 (nautilus),如何删除它? (Updated 13 Dec 2004)
- 如何编辑面板上的菜单?
- 如何使用 Wine ?(Updated 13 Dec 2004)
- 我不能再进入Windows 网络的共享文件夹 !有人告诉我用 smbmount这个命令,但是还是不行!
- d00d, u r t3h sukc
The FAQ
关于 Fedora
- Q: Fedora Core 3到底是什么?
A: 首先, 请读一下 官方的 Fedora 介绍 .现在,我将做一个总结.你可以想象它就是 "Red Hat Linux 12," 但是实际上它和Red Hat Linux 还是有一些不同的:
- 它是由开源社区支持的. 也就是说你本人 也可以参加到Fedora Core的开发中来,只要你愿意.
- 每隔六个月,一个新的版本的Fedora就会出现.
- 每当新版本出现,6-8月后之前的旧版本就不被支持了.
也就是说你要每6-8个月更新你的系统.当然,这个升级的过程一般都相当简单,就好象Red Hat Linux 8 - Red Hat Linux 9. 我很难担保它有多么容易.
当然,可能你不愿意或者不可以每隔6-8个月都升级一次,也可以参考一下 Fedora Legacy Project.他们在 Fedora Project 停止支持之后的1年半之内仍然提供安全方面的补丁.
Red Hat Enterprise Linux 4 这是建立于Fedora Core 3的基础上, 如果你想免费了解和学习RHEL 4 ,就试一下 Fedora Core 3.
- 它是由开源社区支持的. 也就是说你本人 也可以参加到Fedora Core的开发中来,只要你愿意.
- Q: Fedora 和Red Hat 企业版的区别在哪里?
A: Red Hat企业版Linux 已经有5年被红帽子支持的历史了. 对于重要生产的场合而且你不想一直在升级你的系统,它是更好的选择. 它也具有一些很有用的特性专为同时运行多个服务器而设计. 同时, 你也可以(有时)真的打电话到Red Hat来寻求对 RHEL的支持, 但是对于Fedora永远也不会有这样的支持.
Fedora是免费发行的,RHEL(企业版)要花钱去买.
Fedora 相比之下更加时髦, 而且Fedora有一个很大的社区的支持,许多人愿意免费地帮助你(就像这个网页一样).
Red Hat 也有 关于这个问题的有趣的讨论.
- Q: 它是一个不稳定的版本吗?
A: 当然不是!
- Q: 它已经正式发行吗?
A: 当然! Fedora Core 3 (Heidelberg), 在2004/11/8正式发行.想知道新版本的Fedora什么时候会发行, 请看发行日程表.
- Q: 如何得到一份拷贝?
A: 直接下载或者 使用BT工具. 请下载 "binary" 或者 "i386" 包, 不要下载 "source" 或者 "SRPM" 包.
如果你不想下载这么大的光盘映象,你也可以选择一家官方的分销商. (感谢Beartooth 指出有些人不方便下载CD, 同时感谢Jef Spaleta 提供这个链接.)
- Q: 如何找到随Fedora Core 3 发行的各种程序的一个列表?
A: 请在以下地址寻找 Core 3 主要软件包列表 Distrowatch Fedora Page.
- Q: up2date还能用吗?
A: 当然, 只是现在不在使用 Red Hat Network (RHN). (现在仍然是从 Red Hat的服务器上下载,只是没有原来的RHN的一些功能了.)
尽管如此,对于Fedora, 最好还是使用 yum 升级而不是用up2date.
- Q: 是不是可以安装在ReiserFS, JFS, 或者 XFS的文件系统上?
A: 当然, 你可以把 Fedora 装在 ReiserFS, JFS, or XFS.
但是这些文件系统都没有Fedora Project官方的支持. (也就是说,如果你使用这些文件系统遇到什么问题,你可能找不到太多官方的支持.)
在安装程序的提示下输入下面的命令来安装到ReiserFS文件系统:
linux reiserfs
或者到JFS文件系统:
linux jfs
到XFS:
linux xfs
注意: 你不可以使用SELinux 如果选择 ReiserFS 或者JFS. 但是XFS可以. (如果你不知道SELinux是什么,你可以跳过这个提示.)
(感谢 whiprush [quoting Jesse Keating] 提供这些知识.同时感谢 Kai Thomsen.感谢 Colin Charles 提供了XFS和SELinux 的提示.)
- Q: Fedora 是否支持使用64位 (AMD-64或者Intel EM64T) CPU 的电脑?
A: 当然,可以! 64位的Fedora Core 2 现在可以下载了. 看看这里下载 Fedora.
如果你有什么64位Fedora的任何问题, 看看 AMD 64 Fedora FAQ.
当然,也可以在64位电脑上面运行普通的32位Fedora.
- Q: 我们可以在 Mac (PowerPC)上运行Fedora ?
- Q: 为什么找不到Fedora Core 3制作安装盘的软盘镜像文件(image)?
A: Fedora Core 新的2.6 内核不能放进软盘里.所以,你不能从软盘启动或者安装.然而, 你可以用光盘,硬盘,或者甚至是USB disk (如果你的电脑支持用USB disk启动).
如果你只能用软盘你只有如下的选择:
- 如果你是升级旧的Red Hat/Fedora安装, 参考HOWTO: Upgrade to Fedora on a Laptop with no Floppy or CD Drive. (感谢Alan Cox的链接.)
- 如果你有光驱,但是不能从光盘启动,你可以选择安装 Smart Boot Manager 到软盘上,然后用它来实现从光盘启动. (感谢Paul Rouleau的提示!)
(感谢Noa Resare对这个问题的建议)
- 如果你是升级旧的Red Hat/Fedora安装, 参考HOWTO: Upgrade to Fedora on a Laptop with no Floppy or CD Drive. (感谢Alan Cox的链接.)
获得和安装 Fedora 的软件
- Q: 哪里可以找到Fedora的软件?
A: 有一些"repositories"(仓库) (提供软件的网站). 主站点有非官方的rpm.livna.org (那些需要授权的或是有USA 专利问题的软件) 还有就是比较官方的 fedora.us site. 他们提供了不同的软件.
还有更多的选择.参考 FreshRPMs. 在FreshRPMs 和他的伙伴那里有许多没有被fedora.us或者livna.org收录的软件. 你可以在 "Mega-Merge" page找到这些东东的列表.
在这几个主要的镜像站点上查找想要的软件请使用 FedoraTracker search engine 或者 rpm.pbone.net.
- Q: 如何安装Fedora下的软件? (如何使用yum 或者是 RPM包)
A: 最方便的在Fedora下安装软件的方法就是使用yum.
- 下载这个yum.conf (更新于2005年2月6日).
- 替换你的"/etc/yum.conf". 当然你首先得是root 才能这样做. 实际上,下面的操作都需要root的权限.
注意:不是所有的软件都可以用到Fedora Core 3下.目前,一些站点还在针对新发布的Fedora Core 3进行更新.
注意:因为各种原因,这里的yum.conf随时都在更新.
现在你可以看看有哪些可用的软件:
yum list available
- 要安装新的软件输入:
yum install 软件包名
- 要升级旧的软件输入:
yum update 软件包名
如果你不指定软件名,yum将自动升级全部软件.
- 要检查有哪些软件可以升级,输入:
yum check-update
- 要搜索某个软件,输入:
yum search
要了解yum更多信息,参看 yum project page. (感谢Ron Kuris.)
如果你很在意安全的问题,我建议你注释掉yum.conf中 "gpgcheck=1" 这样的行-- 你可以参考 gpg signature question. (感谢 Kai Thomsen)
要通过代理服务器来上yum,请参考 FedoraForum 上关于代理服务器的讨论. (感谢 Reinhard Herzfeld 提供这个链接.)
如果你要从RPM包安装从yum以外得到的软件包,打开一个 terminal 然后以root登录:
rpm -Uvh filename.rpm
- 下载这个yum.conf (更新于2005年2月6日).
- Q: Fedora下面有没有类似 apt的东东?
A: APT 是Debian Linux下的软件安装工具,可以自动解决软件包的倚赖问题(dependencies), 这使得软件安装起来更加容易.
我们也可以在Fedora下使用类似APT的功能. 它已经包含在标准的Fedora Core 安装中.也就是 yum. 他可以自动下载和安装软件 同时自动解决它的倚赖问题, 只用一行命令.我还提供了一个特别的配置文件 我在自己的电脑上用的,在 如何使用yum这里.
对那些偏爱apt的人, Fedora也可以安装APT.你可以到 fedora.us下载. (查找"apt", Fedora Core 2的版本也可以.) 我听说它工作的很好.
- Q: Fedora Extras(额外软件包)在哪里可以找到? (更新于2005年2月6日)
A: 所谓 "Fedora Extras" 就是 Fedora Project同时提供的的软件包.他们不包括在Fedora Core里一起发行.请参考 红帽子的Fedora下载站点 它将会 存贮这些软件包.要安装这些包,请参考如何安装软件包.
- Q:红帽子的升级服务器 太慢了! 有没有别的选择?
A: 首先,你应该使用 yum. 其次,使用我们提供的这个yum.conf -- 它用了许多更快的镜像站点 (参考安装软件如果你不知道怎么用Yum.)
如果你真得要用up2date, 参考 Alexander Dalloz'的大作. 他讲了如何在up2date里面使用其他镜像站点.
- Q: 如何安装 Java?
最容易的方法是安装Dag Wieers'的 Java Runtime RPM包:
- 确认你用的是我提到的yum.conf.
- 打开一个终端.
- 登录为root.
- 输入:
yum --enablerepo dag install j2re mozilla-j2re
(如果你是升级,用"update" 替换 "install.")
如果上面的方法不适合你,或者你想用JAVA编程,(你需要SDK而不仅仅是Java Runtime),参考 自定义JAVA安装指南.
(感谢Dag Wieers 使这个问题简单的不可置信.感谢Quy Nguyen Dai的建议.)
- 确认你用的是我提到的yum.conf.
- Q:如何安装网页浏览器的Flash插件?
A: 有两种方法,用"yum,"的和不用的.
- 使用yum (最容易的):
- 不用yum (稍微复杂):
- 下载Flash 插件 RPM包到你的home目录. (选择"Fedora Core 3"的软件包.)
- 打开一个终端.
- 登录为root:
su -
- 输入
rpm -Uvh flash-plugin-*.i386.rpm
注意: 如果你重装了浏览器(Mozilla),你要重复这个步骤. - 下载Flash 插件 RPM包到你的home目录. (选择"Fedora Core 3"的软件包.)
还有其他问题,请参考Flash插件FAQ! (感谢Warren Togami 提供这个链接.)
(感谢IRC的朋友们以及vegan_linuxguy解决这个问题的贡献. 感谢"m d," David Ball, 还有其他人 对这个问题的贡献!感谢 David Jansen告诉我,我们不再需要libstdc++-compat 来运行Flash插件.)
- 使用yum (最容易的):
- Q: 如何在网页浏览器里查看PDF文档?
A: 我想最容易的方法是安装Adobe Acrobat Reader. 只要安装Dag Wieers's mozilla-acroread 包;
- 确认你是用我的yum.conf.
- 打开一个终端.
- 登录为root.
- 输入:
yum --enablerepo dag install mozilla-acroread
(如果你是升级,用"update"代替 "install.")
- 确认你是用我的yum.conf.
- Q: 如何在网页浏览器里看电影?
A: 只要安装 mplayer 插件:
- 确认你是用我的yum.conf.
- 打开一个终端.
- 登录为root.
- 输入:
su -
- 安装这个插件:
yum install mplayerplug-in
- 关掉所有的网页,再打开试试看.
现在可以了吧!
注意: 如果你重新安装了Mozilla,你还要再重复上面的动作.
(感谢 Sindre 提供答案.)
- 确认你是用我的yum.conf.
- Q: 如何使用MSN /AIM/ICQ/Yahoo 这样的即时通讯软件?
A: 当然,Fedora提供了一个通用的及时通讯工具gaim. 通过 使用 gaim,你可以同时看到 MSN Messenger, ICQ, AIM, Yahoo! Messenger,以及 Jabber上的好友.
要使用gaim,点击"Red Hat"应用程序菜单,选择 "互联网," 然后选择 "IM"
参考gaim的文档 如何加入你的MSN帐号.
(感谢Peter Lawler"gaim"是免费的.)
- Q:如何安装字体? 我可以用windows的字体吗(.ttf)?
A: 当然可以.
- 双击桌面上 "计算机" 图标.
- 从"文件"菜单下选择"打开位置..."
- 输入:
fonts:
现在只要简单的拖放& 你的字体文件到这个窗口来添加它们.
(感谢Harold Gimenez提供这个简单的方法.)
- 双击桌面上 "计算机" 图标.
- Q: 如何获得硬件在Fedora下的驱动程序 ?
Dag Wieers 提供了 相当多的Fedora驱动程序, 针对各种各样的硬件.那些以"kernel-module"开头的包 是驱动程序. 只要下载你的合适版本的驱动程序给你的内核.如果你不知道你的内核的版本, 你可以打开一个终端然后输入:
uname -r
注意: 你升级内核之后要重新安装新的驱动程序.
如果在Dag's site找不到你要的驱动,试试 Googling 查找:
Fedora 硬件名字
或者:
Linux 硬件名字
这里的硬件名子是你硬件的通用名字. 查不到,可以多试几个不同的名字.
问题和解决方案
- Q: 我从RPM包得到NOKEY 的警告信息 或者说在使用 Apt /Yum / up2date! 这样的工具时收到类似gpg signature error的错误信息.(更新于2005年2月6日)
A: NOKEY不是一个真正的问题.不会对你有什么妨碍. (Apt / yum / up2date的警告,不管怎么说, 通常会使你无法安装软件.)
如果你想解决这个问题,输入下面的命令来导入镜像站点的正确的key:
当然必须登录为root 来作.
- Red Hat:
rpm --import /usr/share/doc/fedora-release-3/RPM-GPG-KEY*
- Extras:
rpm --import http://download.fedora.redhat.co ... RPM-GPG-KEY-Fedora- Extras
- rpm.livna.org:
rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
- FreshRPMs:
rpm --import http://freshrpms.net/packages/RPM-GPG-KEY.txt
- DAG:
rpm --import http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
- ATrpms:
rpm --import http://atrpms.net/RPM-GPG-KEY.atrpms
- NewRPMs:
rpm --import http://newrpms.sunsite.dk/gpg-pubkey-newrpms.txt
- Dries:
rpm --import http://apt.sw.be/dries/RPM-GPG-KEY.dries.txt
- JPackage:
rpm --import http://www.jpackage.org/jpackage.asc
(感谢Kai Thomsen提供原始的 ATrpms key, 同时感谢 Tom Householder新的地址! 感谢Pim Rupert提供Dries key. 感谢Anduin Withers指出如何正确认识这个问题.)
- Red Hat:
- Q: 在Fedora Core 3里,如何开启我的ATI显卡的3D支持? (更新于2005年2月6日)
A: 现在 livna.org 已经提供了专门为Fedora设计制作的RPM格式的ATI显示卡驱动程序包.
注意: 如果之前你安装过nVidia的驱动程序, 必须在安装 ATI的驱动前先卸载它. (感谢 Ajay 的提示!)
如果你使用了yum 并采用了我们的 配置方法, 可以输入以下命令来安装:
yum install ati-fglrx kernel-module-fglrx-`(uname -r)`
这会针对你的内核版本安装ATI驱动,在重新启动之后会生效.
如果升级你的内核的话,记得在重新启动之前,重新安装 ATI驱动.为新内核安装驱动,使用下面的命令:
yum install kernel-module-fglrx-`(rpm -q --queryformat="%{version}-%{release}n" kernel | tail -n 1)`
(这只是用了一个小花招来得到你最新的内核的版本号.)
如果你发现了livna.org RPM包的任何问题, 请报告给Livna.org Bugzilla.
如果遇到ATI驱动的问题, 请报告至 ATI Feedback Form!
(感谢所有提醒和鼓励我更新FAQ上这个问题的人!感谢 Peter Lawler 大量 的帮助. 感谢 Sindre提供了最初的草稿.)
- Q: 如何使我的nVidia 显卡支持3D?
A: 现在livna.org上面提供了专为Fedora设计的nVidia驱动程序. 如果你用yum,而且使用我的yum.conf, 你应该可以很容易的安装这个驱动:
这样就可以针对你的内核版本安装适用的驱动了.
如果你升级了内核,记住一定要在启动新的内核之前安装合适的驱动程序. 这里有一些快捷的命令可以在 终端以 root 的权限里执行,轻松安装新的驱动:
yum install kernel-module-nvidia-`(rpm -q --queryformat="%{version}-%{release}n" kernel | tail -n 1)`
(这实际上是采用了一种很有趣的方法获得内核版本号.)
如果需要对nVidia驱动的帮助,参考 nV News "Linux and nVidia Graphics" forum. (感谢 Exile in Paradise.)
如果不能下载 livna.org 的RPM包, 参考 其他选择.
(感谢 Jeff Spaleta 告诉我已经有RPM包.)
- Q: 我的电脑装了 nVidia 显卡,我的电脑在 启动时死锁!
A: 这个问题是由 "Red Hat Graphical Boot" (RHGB,红帽子图形启动)和nVidia的驱动不兼容引起. 为了解决这个问题并使电脑可以正常启动,我们可以关掉RHGB:
- 电脑启动的时候,在GRUB 的屏幕里(也就是你选择操作系统的地方),选择你要启动的Fedora 的时候按a 键,别按Enter.
- 你会看到与下面类似的一行:
kernel /vmlinuz-2.6.6-1.435 ro root=LABEL=/ rhgb quiet
从这一行里删除"rhgb",然后按Enter.
现在你的电脑应该可以启动了吧.
为了防止以后发生同样的问题, 参考本FAQ的关于 nVidia 安装
- 电脑启动的时候,在GRUB 的屏幕里(也就是你选择操作系统的地方),选择你要启动的Fedora 的时候按a 键,别按Enter.
- Q: 安装程序的安装介质检查报告说我的安装光盘有问题!
A: 这是内核本身的一个BUG,在特定的系统上,作介质检查时 会出现所有的光盘都不好,为了顺利通过这个检查,请按以下几步来做:
- 在安装程序的提示符下,输入:
linux mediacheck nocddma
- 来检查你的CD/DVD.
- 重新启动,正常运行你的安装程序.
- 在安装程序的提示符下,输入:
- Q: 我碰到了奇怪的安装问题.
A: 如果你不能安装,或者在安装的过程中,安装后遇到什么问题,先看看 README 以及Release Notes(发行注记).
如果README和Release Notes都没有解决你的问题, 试试用下面的命令启动安装程序:
linux ide=nodma
linux acpi=off
linux i8042.nomux
linux acpi=off apm=off
"i8042.nomux" 特别是在你遇到键盘,鼠标的问题的时候用得上.
如果上面的某个命令解决了你的启动问题,请务必 记录这个bug在Red Hat's Bugzilla.
(感谢Alan Cox提供这些信息.)
- Q: 如何使用 XMMS 播放MP3?
A: 在讨论这个问题之前,请注意: 在包括美国之内一些国家里, 你不得不为了使用MP3 播放器和解码器 支付专利使用费. 尽管如此,对于家庭用户来说,使用MP3播放器不会涉及法律问题. (感谢Doug McClean帮我澄清这个问题!)
如上所述,你可以到rpm.livna.org 下载播放器和解码器.
- 一样要确认你用我的yum.conf.
- 打开一个终端.
- 登录为root:
su -
- 输入:
yum install xmms-mp3
- 一样要确认你用我的yum.conf.
- Q: 如何使用 Rhythmbox 播放 MP3?
A: 注意,可能我们会触犯法律,参考XMMS的问题.
如上所述,你可以到rpm.livna.org 下载播放器和解码器.
- 确认你使用我的yum.conf.
- 打开一个终端.
- 登录为root:
su -
- 输入:
yum install gstreamer-plugins-mp3
- 确认你使用我的yum.conf.
- Q:如何在 KDE MP3 播放器中播放MP3,例如 Noatun 或者 Juk?
A: 注意,可能我们会触犯法律,参考XMMS的问题.
如上所述,你可以到rpm.livna.org 下载播放器和解码器.
:
- 确认你使用我的yum.conf.
- 打开一个终端.
- 登录为root:
su -
- 输入
yum install kdemultimedia-extras
(感谢David Anderson 和 David Müller!)
- 确认你使用我的yum.conf.
- Q: 如何读取 NTFS格式分区 (Windows NT/2000/XP/2003) ?
- Q:我不喜欢新的文件浏览器 (nautilus),如何删除它?
A: 如果你想要它变回 Fedora Core 1的样子, 参考以下步骤:
- 双击 "计算机" 图标
- 到"编辑"菜单下选择"首选项".
- 选择"行为"选项卡.
- 勾选"总是在浏览器窗口中打开"
(感谢 Eugéne Roux!)
- 双击 "计算机" 图标
- Q: 如何编辑面板上的菜单?
A: 现在的GNOME还是没有提供容易的方法来编辑菜单.
如果你真得要改变这些,修改".desktop"文本文件,在/usr/share/applications/目录下. 如果你是root的话,可以用文件编辑器(例如gedit)来编辑它.你也可以用命令行工具 desktop-file-install 来建立自定义的.desktop文件. 如果想知道怎么编辑.desktop文件,你可以参考系统自带的/usr/share/applications下面的, 读读下面的材料(技术方面的): .desktop 规格.
KDE下面有一个工具叫做kmenuedit,可以用来编辑菜单.
- Q: 如何使用Wine ?
A: 到下面的站点下载 RPM包 到 NewRPMs Fedora 站点看看 最新的版本 (注意看到后面的发布日期). (感谢che.)
如果你不能使用PRM包, (例如CrossOver Office版Wine), 有两种选择:
- 示例::
每次使用 wine, 试试不要输入wine 程序名 改成输入:
setarch i386 wine 程序名
(感谢"ric".)
- 更复杂点 (性能更好):
你可以关掉安全的方面的一个功能 "exec-shield." 这个可以解决wine和fedora的很多冲突:
- 登录为 root:
su -
- 运行 prelink:
prelink -ua
- 编辑 /etc/sysconfig/prelink. 作以下更改:
PRELINK_OPTS=-mR
改成:
PRELINK_OPTS="-m --no-exec-shield"
- 然后运行如下命令来关掉 exec-shield:
prelink -am --no-exec-shield
注意: Exec-shield 可以减少可怕的"buffer overflow". 很多病毒和骇客攻击采用这个方法.然而,如果你始终保持你的系统更新的话, 你即使关掉exec-shield也没有更大的风险.
注意:你也可以编辑 /etc/prelink.conf跳过关于wine的所有行 ,但是,我不知道更具体的该怎么做. (如果你成功了, 给我email!)
- 登录为 root:
- Q: How do I get Wine to work(New)? (Updated 13 Dec 2004)
A: Wine should work out-of-the-box on Fedora Core 3. If it doesn't, try the Fedora Core 2 Wine instructions.
(感谢Carlos Vidal和Jeremy White提供通用的Wine un-prelink的方法.感谢Guy Fraser 提供PRELINK_OPTS的方法. )
- 示例::
- Q:我不能再进入Windows 网络的共享文件夹 !有人告诉我用 smbmount这个命令,但是还是不行!
A: Fedora Core 3提供了更新更酷的方法来共享windows 下的文件,就是 "The Common Internet File System" (CIFS). 来取代 "smbmount",试试看:
mount -t cifs //计算机名/share /mnt/目录名
获得更多信息,打开一个 终端 输入:
man mount.cifs
- Q: d00d, u r t3h sukc
A: 噢, 请把你的句子整理得像一个问题,呵呵.
与此同时: party on. And goats.(这句什么意思,不懂)
本FAQ 由Max Kanat-Alexander 负责维护. Email: max -at- fedorafaq -dot- org 或者 Avatraxiom 在FreeNode IRC#fedora频道. Sindre "foolish" Pedersen Bjørdal 是他的副手 (foolish -at- fedorafaq -dot- org).
你可以帮我们维护这个FAQ的更新! 如果你发现我们没有讲到的问题,或者我们的回答不对,不够好,请告诉我们,我们会尽快改善.
apache2.2 PHP5.1.1 release
新的版本主要重写了认证、缓冲以及大文件支持等多个子系统的代码,看起来似乎不错,还在使用2.1版本的用户该是更新的时候了。
PHP5的升级主要是在安全上,毕竟XML_RPC的漏洞弄得人心惶惶。但是有一个“很要命”的升级可能会影响到很多利用PHP+静态模版转制成动态网站的用户(本站就是一个比较典型的例子):
取消了原先的"{" "}"的表达方式,变成了直接的 “{ ” 和 “}”。
用debian彻底封杀P2P
这里纠正一个错误,中间在接kernel的原代码的时候报错了,我当时没管,都后来才改了系统时间,我自己又重新解压了一次的,这里没说,现在补充一下
lcnja:/# uname -a
Linux lcnja 2.6.11-1-386 #1 Fri May 20 06:15:52 UTC 2005 i686 GNU/Linux
看一下,我现在已经是2.6.11-1的内核了,已经非常的新了,但是因为iptables的最新版需要给内核打补丁,所以我决定重新编译内核
因为我的系统是通过debian的网络安装上去的。n多的东西没装,现在我们来装一下
lcnja:/# apt-get install make automake gcc g++ kernel-source-2.6.11 kernel-package ncurses-dev fakeroot wget bzip2 make patch
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
make 已经是最新的! 版本了。
注意,我选了 automake1.4 而非 automake
automake1.4 已经是最新的版本了。
gcc 已经是最新的版本了。
g++ 已经是最新的版本了。
注意,我选了 libncurses5-dev 而非 ncurses-dev
bzip2 已经是最新的版本了。
make 已经是最新的版本了。
将会安装下列的额外的软件包:
dpkg dpkg-dev libncurses5 libncurses5-dev
建议安装的软件包:
gnupg debian-keyring libdb3-dev docbook-utils libqt3-mt-dev ed
下列【新】软件包将被安装:
dpkg-dev fakeroot kernel-package libncurses5-dev patch
下列的软件包将被升级:
dpkg kernel-source-2.6.11 libncurses5 wget
共升级了 4 个软件包,新安装了 5 个软件包,要卸载 0 个软件包,有 40 个软件未被升级。
需要下载 40.8MB 的软件包。
解压缩后会消耗掉 7700kB 的额外空间。
您希望继续执行吗?[Y/n]y
! 获取:1 http://mirrors.geekbone.org sid/main dpkg 1.13.9 [1781kB]
获取:2 http://mirrors.geekbone.org sid/main libncurses5 5.4-6 [289kB]
获取:3 http://mirrors.geekbone.org sid/main wget 1.10-1 [412kB]
获取:4 http://mirrors.geekbone.org sid/main patch 2.5.9-2 [96.4kB]
获取:5 http://mirrors.geekbone.org sid/main dpkg-dev 1.13.9 [163kB] &nb! sp;
获取:6 http://mirrors.geekbone.org sid/main fakeroot 1.3 [70.4kB]
获取:7 http://mirrors.geekbone.org sid/main kernel-package 9.001 [360kB]
获取:7 http://mirrors.geekbone.org sid/main kernel-package 9.001 [360kB]
获取:8 http://mirrors.geekbone.org sid/main kernel-source-2.6.11 2.6.11-6 [36.4MB]
获取:9 http://mirrors.geekbone.org si! d/main l ibncurses5-dev 5.4-6 [1247kB]
下载 40.8MB,耗时 2m34s (264kB/s)
tar: ./postinst:时间戳 2005-06-12 23:28:54 是将来的 153109 秒之后
tar: ./preinst:时间戳 2005-06-12 23:28:54 是将来的 153109 秒之后
tar: ./prerm:时间戳 2005-06-12 23:28:54 是将来的 153109 秒之后
tar: ./postrm:时间戳 2005-06-12 23:28:54 是将来的 153109 秒之后
tar: ./conffiles:时间戳 2005-06-12 23:28:54 是将来的 153109 秒之后
tar: ./md5sums:时间戳 2005-06-12 23:28:57 是将来的 153112 秒之后
tar: ./control:时间戳 2005-06-12 23:28:57 是将来的 153112 秒之后
tar: .:时间戳 2005-06-12 23:28:57 是将来的 153112 秒之后
(正在读取数据库 ... 系统当前总共安装有 19003 个文件和目录。)
正预备替换 dpkg 1.10.28 (使用 .../archives/dpkg_1.13! .9_i386.deb) ...
正在解压缩将用于更替的包文件 dpkg ...
正在设置 dpkg (1.13.9) ...
正在安装新版本的配置文件 /etc/dpkg/origins/debian ...
Removing /usr/info symlink ...
Adding `local diversion of /usr/bin/md5sum.textutils to /usr/bin/md5sum'
Adding `local diversion of /usr/share/man/man1/md5sum.textutils.1.gz to /usr/share/man/man1/md5sum.1.gz'
tar: ./shlibs:时间戳 2005-06-13 22:43:34 是将来的 236784 秒之后
tar: ./postinst:时间戳 2005-06-13 22:44:08 是将来的 236818 秒之后
tar: ./control:时间戳 2005-06-13 22:44:06 是将来的 236816 秒之后
tar: ./postrm:时间戳 2005-06-13 22:44:08 是将来的 236818 秒之后
tar: .:时间戳 2005-06-13 22:44:08 是将来的 236818 秒之后
(正在读取数据库 ... 系统当前总共安装有 19004 个文件和目录。)
正预备替换 libncurses5 5.4-4 (使用 .../libncurses5_5.4-6_i386.deb) ...
正在解压缩将用于更替的包文件 libncurses5 ...
正� �设置 libncurses5 (5.4-6) ...
(正在读取数据库 ... 系统当前总共安装有 19005 个文件和目录。)
正预备替换 wget 1.9.1-12 (使用 .../archives/wget_1.10-1_i386.deb) ...
正在解压缩将用于更替的包文件 wget ...
选中了曾被取消选择的软件包 patch。
正在解压缩 patch (从 .../patch_2.5.9-2_i386.deb) ...
tar: ./conffiles:时间戳 2005-06-12 23:29:01 是将来的 153107 秒之后
tar: ./md5sums:时间戳 2005-06-12 23:29:01 是将来的 153107 秒之后
tar: ./control:时间戳 2005-06-12 23:29:01 是将来的 153107 秒之后
tar: .:时间戳 2005-06-12 23:29:01 是将来的 153107 秒之后
选中了曾被取消选择的软件包 dpkg-dev。
正在解压缩 dpkg-dev (从 .../dpkg-dev_1.13.9_all.deb) ...
选中了曾被取消选择的软件包 fakeroot。
正在解压缩 fakeroot (从 .../archives/fakeroot_1.3_i386.deb) ...
tar: ./control:时�! ��戳 2005-06-13 14:38:02 是将来的 207647 秒之后
tar: .:时间戳 2005-06-13 14:38:02 是将来的 207647 秒之后
选中了曾被取消选择的软件包 kernel-package。
正在解压缩 kernel-package (从 .../kernel-package_9.001_all.deb) ...
tar: ./control:时间戳 2005-06-12 06:05:26 是将来的 90490 秒之后
tar: ./postinst:时间戳 2005-06-12 06:03:37 是将来的 90381 秒之后
tar: .:时间戳 2005-06-12 06:05:26 是将来的 90490 秒之后
正预备替换 kernel-source-2.6.11 2.6.11-5 (使用 .../kernel-source-2.6.11_2.6.11-6_all.deb) ...
正在解压缩将用于更替的包文件 kernel-source-2.6.11 ...
tar: ./preinst:时间戳 2005-06-13 22:44:08 是将来的 236806 秒之后
tar: ./control:时间戳 2005-06-13 22:44:06 是将来的 236804 秒之后
tar: .:时间戳 2005-06-13 22:44:08 是将来的 236806 秒之后
选中了曾被取消选择的软件包 libncurses5-dev。!
正在解压缩 libncurses5-dev (从 .../libncurses5-dev! _5.4-6_i 386.deb) ...
正在设置 wget (1.10-1) ...
正在安装新版本的配置文件 /etc/wgetrc ...
正在设置 patch (2.5.9-2) ...
正在设置 dpkg-dev (1.13.9) ...
正在设置 fakeroot (1.3) ...
正在设置 kernel-package (9.001) ...
正在设置 kernel-source-2.6.11 (2.6.11-6) ...
正在设置 libncurses5-dev (5.4-6) ...
lcnja:/#
lcnja:/# cd /usr/src/
lcnja:/usr/src# ls
kernel-source-2.6.11.tar.bz2
lcnja:/usr/src# tar xvjf kernel-source-2.6.11.tar.bz2
因为这里太长,所以就不cp过来了,我们继续
创建一个link
lcnja:/usr/src# ls
kernel-source-2.6.11 kernel-source-2.6.11.tar.bz2
lcnja:/usr/src# ln -s ./kernel-source-2.6.11 ./linux
lcnja:/usr/src# ls -l
总用量 35492
drwxr-xr-x 18 root root 4096 2005-06-12 06:03 kernel-source-2.6.11
-rw-r--r-- 1 root root 36295899 2005-06-12 06:05 kernel-source-2.6.11.tar.bz2
lrwxrwxrwx 1 root src 22 2005-06-11 05:01 linux -> ./kernel-source-2.6.11
lcnja:/usr/src#
下面我们来给内核和iptables打补丁
打开http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/我们找到最新的快照
http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20050614.tar.bz2
我们下载它
lcnja:/usr/src/linux# cd /root/
lcnja:~# wget http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-! o-matic-ng-20050614.tar.bz2
--0! 5:05:33- - http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20050614.tar.bz2
=> `patch-o-matic-ng-20050614.tar.bz2'
正在解析主机 ftp.netfilter.org... 213.95.27.115, 2001:780:0:1d:20d:93ff:fe9b:e443
Connecting to ftp.netfilter.org|213.95.27.115|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:474,196 (463K) [application/x-tar]
100%[====================================>] 474,196 137.78K/s ETA 00:00
05:05:47 (137.60 KB/s) - `patch-o-matic-ng-20050614.tar.bz2' saved [474196/474196]
lcnja:~#
然后我们打开
http://www.netfilter.org/! downloads.html
找到最新的iptables
然后我们下载它
lcnja:~# wget http://www.netfilter.org/files/iptables-1.3.1.tar.bz2
--05:07:10-- http://www.netfilter.org/files/iptables-1.3.1.tar.bz2
=> `iptables-1.3.1.tar.bz2'
正在解析主机 www.netfilter.org... 213.95.27.115, 2001:780:0:1d:20d:93ff:fe9b:e443
Connecting to www.netfilter.org|213.95.27.115|:80... 已连接! 。
已发出 HTTP 请求,正在等待回应... 200 OK长 度:180,670 (176K) [application/x-tar]
100%[====================================>] 180,670 87.82K/s
05:07:13 (87.66 KB/s) - `iptables-1.3.1.tar.bz2' saved [180670/180670]
lcnja:~#
然后我们把那个patch的包打开
lcnja:~# tar xvjf patch-o-matic-ng-20050614.tar.bz2
:55:29 是将来的 348470 秒之后
tar: patch-o-matic-ng-20050614/addrtype/linux-2.6/net:时间戳 2005-06-15 05:55:29 是将来的 348470 秒之后
tar: patch-o-matic-ng-20050614/addrtype/linux-2.6:时间戳 2005-06-15 05:55:29 是将来的 348470 秒之后
patch-o-matic-ng-20050614/addrtype/info
tar: patch-o-matic-ng-20050614/addrtype:时间戳 2005-06-15 05:55:29 是将来的 348470 秒之后
tar: patch-o-matic-ng-20050614:时间戳 2005-06-15 05:55:28 是将来的 348469 秒之后
看到了吧
上面开始报错了,因为时间不对
我们来设置一�! ��时间
lcnja:~# date 061605422005
四 6月 16 05:42:00 CST 2005
现在时间设置对了
我们再解压缩一次
lcnja:~# tar xvjf patch-o-matic-ng-20050614.tar.bz2
下面非常正常的解压了,我们继续
下面我们来解压缩 iptables-1.3.1.tar.bz2
lcnja:~# tar xvjf iptables-1.3.1.tar.bz2
然后我们来给iptables打补丁
lcnja:/usr/src/linux# cd /usr/src/linux ; make mrproper
lcnja:/usr/src/linux# make mrproper
CLEAN scripts/basic
CLEAN scripts/kconfig
CLEAN scripts/lxdialog
CLEAN .config .config.old include/linux/autoconf.h
lcnja:/usr/src/linux# make menuconfig
什么都不动,直接选择exit退出,只是记得保存一下,否则将来你就会出错的哦
然后输入
lcnja:~/patch-o-matic-ng-20050614# KERNEL_DIR=/usr/src/linux IPTABLES_DIR=/root/iptables-1.3.1 ./runme ipp2p
lcnja:~/patch-o-matic-ng-20050! 614# KERNEL_DIR=/usr/src/linux IPTABLES_DIR=/root/iptables-1.3! .1 ./run me time
lcnja:~/patch-o-matic-ng-20050614# KERNEL_DIR=/usr/src/linux IPTABLES_DIR=/root/
iptables-1.3.1 ./runme iprange
lcnja:~/patch-o-matic-ng-20050614# KERNEL_DIR=/usr/src/linux IPTABLES_DIR=/root/
iptables-1.3.1 ./runme string
lcnja:~/patch-o-matic-ng-20050614# KERNEL_DIR=/usr/src/linux IPTABLES_DIR=/root/
iptables-1.3.1 ./runme time
然后我们到内核设定的
Device Drivers --->
Networking support --->
Networking options --->
Network packet filtering (replaces ipchains) --->
IP: Netfilter Configuration --->
我 们把最下面的这4个都选上,用上下箭头移动上这个<>里面,然后敲空格选择,都选择为M,M表示模块,是动态加载到内核里面的,*表示装载到 内核里面,静态的,速度快,但是内核不可以! 太大,所以不是必须的东西可以考虑做成模块,动态加载,不要的时候内核自动卸载模块
< > TTL target support
< > quota match support
< > TIME match support
< > IPP2P match support
改了就是下面的
<M> TTL target support
<M> quota match support
<M> TIME match supp! ort &n! bsp; &nb sp;
<M> IPP2P match support
一路exit退出,到最后的时候选择保存
在 这之前,其实我已经把我的内核修改过了,很多的垃圾东西都移除了,比如什么对FDDI,什么对苹果的网络协议,ATM,PPP的东西,因为我不用,大家不 要随便动,然后是做服务器的,声音有关的都不要,如果你不用scsi的东西,scsi的全干掉,除非你可以看懂里面的选择是干什么的,反正是我知道自己不 用的全部干掉了,包括什么ipv6,用都不用的他还默认加载到内核里,都干掉,但是不懂的不要随便修改文件系统配置,否则系统有启动不了的危险
把里面些没用的专用的厂家硬件的支持全部干掉,除非你是品牌服务器
然后还是一路退出然后保存,然�! �下面我们就开始来编译内核了,下面是debian官方的方法,比较好,也比较方便,不像rh那样遍个上10遍都不成功,但是也没gentoo的编译那样简单
lcnja:/usr/src/linux# make-kpkg clean
lcnja:/usr/src/linux# fakeroot make-kpkg --initrd --append-to-version=lcnja --revision=1.0 kernel_image
下面你可以去逛街泡MM,打牌下棋随便你去干什么,因为这个地方要等很长时间的
如果你的服务器或者用来做nat的机器很差的话,我建议你到一个好的机器上面编译了再cp过来安装,否则够你受的
然后我们在/usr/src目录会看到一个以kernel-image开始头的deb包,我们dpkg -i kernel-image.....然后回车就开始安装最新的内核了
然后我们重新启动,cd 到iptables下面去,make ;make install
然后我们depmod -a
然后就iptables -V看一下版本,你是不的1.3.1的啊,呵呵
lcnja:! ~# iptables -V
iptables v1.3.1
lcnja:~#
然后! 你一� �命令就可以封bt了
iptables -A FORWARD -m ipp2p --bit -j DROP
然后查看一下
iptables -nL
lcnja:~# iptables -A FORWARD -m ipp2p --bit -j DROP
lcnja:~# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0 ipp2p v0.7.2 --bit
这个就是刚才加进去的东西
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
lcnja:~#
lcnja:~# iptables -A OUTPUT -m time --timestart 8:00 --timestop 18:00 -j ACCEPT
lcnja:~# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt sour! ce destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0 ipp2p v0.7.2 --bit
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 TIME from 8:0 to 18:0 on all days
lcnja:~#
早上8点到晚上18点可以上网,其他时间不可以
