Gentoo月报: 2008年8月31日
1.
介绍
本月GMN
欢迎阅读7月份的Gentoo月报!
和往常一样,你可以在对应的论坛帖子里面讨论与本期月报相关的任何问题。我们期待听到您的声音!
2.
Gentoo新闻
PHP4已从Portage树中移除
在8月8日,上游终止了PHP4上的全部工作,不会再发布新的安全补丁和bug修复。从2007年10月,PHP4就已经在Portage树中被强制屏蔽了(由于安全原因),现在它已彻底从Portage树中移除。
如果条件允许,你应当升级到PHP5。这是一个仍然有bug修复和安全更新支持的版本。
如果你或你的公司还没有升级到PHP5,这里有一个PHP4的overlay。尽管如此,因为它们仍然包含许多的安全漏洞,所以我们并不推荐在面向公众的服务上使用这些老版本的PHP4软件包。
理事会议摘要
Gentoo理事在8月18日举行了月度会议。这里是日程表;晚些时候,他们将就已提议的基金会章程投票。
近期活动
-
Bugday:想找到不花太多时间就能帮助Gentoo的方式吗?在9月6日参加我们每月一次的bugday活动,帮助我们捉一些bug吧。
-
议会会议:Getoo议会会议每个月都会召开两次会来讨论影响整个Gentoo的重要技术问题。下次会议计划在9月14日UTC时间20:00,在irc.freenode.net的#gentoo-council频道举行,欢迎大家参与。
-
理事会议:9月19日。
3.
倾听社区
采访:Google代码之夏中的学生Nandeep Mali
在我们对代码之夏学生们进行的第三次采访中,我们和Nandeep Mali进行了对话,他正在做“Setting Beacon Afloat”方面的工作。继续阅读下去可以了解更多关于他和他的项目的信息。
GMN:向我们简单介绍一下你自己吧。你从哪来?在哪上学?学什么专业?你有没有主页或是能让爱好者了解你的其它方式?
Nandeep:大家好!:)我来自印度。我在斋浦尔NIT大学学习计算机工程,并于今年5月份完成了本科学业(B.Tech)。以前我的主页和博客在miniorb.in,但现在那只是一个等待维护的空域名。大家可以常给我发邮件或是到Freenode上找我(别名为n9986)。
GMN:你在加入代码之夏前是否已经是Gentoo或开源中的一员了?如果是的话,请跟我们讲讲你是如何选择的,为什么你喜欢编写开源的代码。
Nandeep:今年的夏天是我第一次参加这种让人上瘾的活动。:D
我一直对整个网络前端(就是web)的概念比较感兴趣,觉得web应用比本地应用更有用,我想把我的精力都投入到web应用上。
当我在寻找一个合适的项目的时候我在Gentoo的项目页面发现了这个有趣的点子。因为我认识Anant(游戏中的战友),我跟他讨论了Beacon的可行性。在草案阶段rane热心的回应帮助我了解了Gentoo社区。看到我的项目页面显示“申请已接受!”的那个时刻真是棒极了。
从那之后我有了很大的进步,因为我通过挂在#gentoo-dev频道上和邮件列表学到了有关Gentoo的不少东西。
GMN:到目前为止,你在Gentoo社区的体验怎么样?
Nandeep:我很高兴能与这些精干又有才华的开发者接触。文档编写得很好,用户参与贡献也很容易。虽然有谣言说投入Gentoo不好玩,我却觉得这里的人们都很和善也很专业。
GMN:请给我们的读者简单介绍一下你正在进行的项目,你为什么觉得它对Gentoo用户有用?什么促使你开始这个项目?对这个项目你有什么目标?
Nandeep:这个项目重新启动了沉睡的“Beacon”项目(是的,我们很高兴接受最佳项目名称奖),它是Anant Narayanan在2006年的代码之夏中创立的项目。像rane所说的,我让这个工具复活,把Gentoo文档团队从中世纪式的在线编辑(vim和cvs)当中解脱出来。代码基础很健壮,让我拥有一个很好的开头。
Beacon有很多特性。它的富文本编辑器可以帮助节省很多时间,而且与文档站点结合以后可以用它来对文档进行简便的wiki式的编辑。非常有用的repodoc-web模块已经就位,(类似Google Docs的)合作式编辑器应该会给文档团队的工作方式带来一些有趣的改变。
事实上我对这次访谈的回答就是在Beacon的富文本编辑器上打出来的,大概节省了GMN一点时间。^_^
GMN:你在编程之余都做些什么?(爱好,兴趣,最喜欢的电视节目之类)
Nandeep:动漫,游戏,听喜欢的音乐(取决于情绪),读托尔金的奇幻小说,罗尔德·达尔的怪异故事,还有在网上翻看杂七杂八的东西。电视对我来说是个陌生的概念。当然我从来不把编程看作工作。:)
GMN:谢谢你接受采访!
Planet Gentoo
并行编译:Zac Medico宣布了Portage新的并行编译功能,Jeremy Olexa进行了一些初步测试。
新的软件包集合:Zac Medico介绍了Portage 2.2 RC版本中增加的软件包集合。
新的IRC机器人:因为IRC机器人Jeeves完成了他的使命,Robin H. Johnson做了个替代品:Willikins。
另一本电子书:Sven Vermeulen谈论了他的一本关于Linux的且主要介绍Gentoo的书的进展
Gentoo相关新闻
Gentoo最近被Linux Identity杂志法文版推荐。有些文章是Gentoo开发者Olivier Fisette和Luis Francisco Araujo所写。其中的部分甚至可以在线浏览 (法文)。
Tigase:一个基于Gentoo的LiveCD
Tigase是一个新的基于Gentoo的发行版。此项目致力于开发XMPP(Jabber)服务器和基于web,AJAX的客户端。
此LiveCD包含了Tigase服务器、Drupal CMS和Dovecot IMAP4服务器,这些都已预先配置好并作为一个系统运行。所有服务使用同一个用户数据库进行认证。你既可以直接使用Jabber客户端在示例网站发布新闻,也可以用Jabber客户端接收新的评论、帖子的通知。详见它的下载页面。这个LiveCD演示了Tigase的Jabber代码是怎么与其他系统整合的。
虽然此项目的代码是用Java写的,但开发平台一直用的是Gentoo Linux,而且所有的Tigase服务器均基于Gentoo Linux。所以用Gentoo来做LiveCD也是自然的选择。它使开发者在对所安装组件和程序进行管理方面拥有充分的灵活性和控制力。此外,开发者还能够容易地用Portage更新所有的包。
此LiveCD是32位的环境,这样可以使其在尽可能多的平台上运行。但它是在64位的Gentoo上准备和建立的。尽管架构有所不同,建立LiveCD还是相当容易与顺畅的。
Tin Hat:一个基于Hardened Gentoo的LiveCD
Tin Hat是一个基于Hardened Gentoo的LiveCD。它的目的是提供一个非常安全、稳定、快捷的完全驻留在RAM中的桌面环境。它是一个巨大的磁盘镜像(2.3GB),可以在启动时把自己加载到tmpfs中,所以不需从CD挂载任何文件系统。Tin Hat也可以从USB盘中运行,这样启动时间会短些。不论用CD还是USB盘,一旦Tin Hat运行在内存中,它就非常快了,而且之后再也不去访问启动介质了。
Tin Hat非常重视安全性,甚至致力于“信息零丢失”——它的开发者为确保数据在机器甚至被入侵者物理上获取后仍保证数据的安全都采取了措施。为使系统免受网络/代码漏洞方面的攻击,Tin Hat加上了GRSEC、PAX和其他巧妙办法的层层保护。更多关于Tin Hat的安全性、速度及原理方面的信息可以在它的项目页面上找到。
Tin Hat通过模板使制作你自己的版本变得容易。你甚至能够保存一个当前正在运行的Tin Hat系统的快照,并以此快照为基础完成定制、增添文件等工作。
想试用Tin Hat?请到此获取!
4.
心得技巧
使用lsof来查找正在使用中的文件和目录。
你是否在删除文件或卸载装置时遇到过一些问题,即便你以root用户操作也解决不了?很有可能是因为设备挂载处的文件或文件夹正在被另一个用户或程序使用中。本期的心得技巧告诉你如何查找哪个用户或程序正在使用你要删除的文件或文件夹。
首先安装lsof工具:
代码 4.1: 安装lsof |
# emerge lsof
|
lsof会列举出系统使用中的文件。一个使用中的文件可以是你正在使用其它程序编辑、阅读中的一个文件,也可以是你正在浏览的一个文件夹。下面举例说明如何在卸载设备时出现拒绝卸载的问题中使用lsof工具。比如拉里牛想把几天前装载的一个CD-ROM卸载了,当他试着操作时,得到了如下的错误信息:
代码 4.2: 卸载一张CD |
# umount /mnt/cdrom
umount: /mnt/cdrom: device is busy
umount: /mnt/cdrom: device is busy
|
/mnt/cdrom正被使用中。由于拉里不记得是什么程序正在使用光驱,他运行了lsof,并得到如下提示:
代码 4.3: 使用lsof |
# lsof | grep /mnt/cdrom
bash 6453 larry cwd DIR 7,0 2048 1856 /mnt/cdrom
su 15774 root cwd DIR 7,0 2048 1856 /mnt/cdrom
|
前两个字段标注的是进程名称和进程ID,第三个字段是进行的所有者,第四个是文件描述信息,之后的字段分别为文件类型、设备号、文件大小、节点号码,最后是文件名。文件描述信息也即文件类型,在这个实例中此处是cwd,或者当前工作目录。这表明用户larry在某处把自己的shell目录指向了/mnt/cdrom。由于拉里打开了很多shell程序,他决定缩小范围以查找可能占用设备的shell程序:
代码 4.4: 检查shell |
# lsof -R | grep /mnt/temp
bash 6453 6437 larry cwd DIR 7,0 2048 1856 /mnt/cdrom
su 15774 6453 root cwd DIR 7,0 2048 1856 /mnt/cdrom
|
此时多出现了一个字段,显示出了bash和su的父进程。正如你所看到的,su是bash的子进程。这可能意味着拉里在使/mnt/cdrom一直处于忙碌状态的那个bash会话中运行了su。接下来,拉里查找到bash的父进程:
代码 4.5: 查找父进程 |
# ps aux | grep 6437
larry 6437 0.0 0.7 38880 24628 ? S Aug09 9:00 konsole [kdeinit] -session 10be696
|
拉里使用Konsole做为他的终端程序。因此他知道必须在Konsole的其中一个窗口中寻找相应的bash会话。拉里运行pstree已找到可能的Konsole窗口:
代码 4.6: 查找Konsole |
# pstree 6437
konsole-+-bash---python---{python}
|-2*[bash]
|-bash---su---bash---pstree
|-2*[bash---su---bash]
|-bash---su---bash---vi
|-bash---ssh
`-bash---su---bash---man---sh---sh---less
|
利用这些信息,拉里进一步缩小自己的推测范围,定位于第四个bash会话,该会话中运行了su。为使/mnt/cdrom不再处于忙碌状态,他退出了su终端并使用cd命令退出了/mnt/cdrom目录。
lsof也可用于其他用途。例如,你可以用它来监控网络连接:
代码 4.7: 监控网络连接 |
# lsof -i TCP:22
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 6094 root 3u IPv4 9145 TCP *:ssh (LISTEN)
ssh 9962 andrey 3u IPv4 3489405 TCP larry.cow:35467>larry.bull:ssh (ESTABLISHED)
|
此处我们看到了监听ssh连接的sshd服务和一个向外连接的ssh会话。
lsof工具的/usr/share/lsof/scripts/文件夹下还有一些脚本。大部分脚本在如何更好地监视系统用户方面会对你有所帮助。
5.
人员变更
总结
Gentoo现在有242名活跃的开发人员,当前43人暂时离队。从Gentoo成立至今,先后共招募过649名开发人员。
离开
下列开发者最近离开Gentoo项目:
- Chris Gianelloni (wolf31o2)
- Nguyen Thai Ngoc Duy (pclouds)
- Benjamin Smee (strerror)
- Guillaume Destuynder (kang)
- Christian Heim (phreak)
- Antoine Raillon (cab)
- Benigno Batista Júnior (bbj)
- Stefan Knoblich (stkn)
- Ingmar Vanhassel (ingmar)
- Bo Ørsted Andresen (zlin)
加入
下列开发者最近加入Gentoo项目:
- Jesus Rivero (neurogeek) 加入了Python团队
变更
下列开发者最近改变了在Gentoo项目内的职位:
- Ben de Groot (yngwin) 加入了LXDE团队
6.
Portage
总结
这一小节总结了Portage树当前的状态。
| 统计汇总 |
| 架构 |
15 |
| 类别 |
151 |
| 包 |
12839 |
| ebuilds |
24971 |
| 关键字分布 |
| 架构 |
稳定 |
测试 |
合计 |
%占总包数 |
| alpha |
3685 |
461 |
4146 |
32.29% |
| amd64 |
7203 |
4041 |
11244 |
87.58% |
| arm |
1590 |
112 |
1702 |
13.26% |
| hppa |
2712 |
567 |
3279 |
25.54% |
| ia64 |
3230 |
597 |
3827 |
29.81% |
| m68k |
494 |
21 |
515 |
4.01% |
| mips |
1004 |
787 |
1791 |
13.95% |
| ppc |
6366 |
2910 |
9276 |
72.25% |
| ppc64 |
3493 |
657 |
4150 |
32.32% |
| s390 |
1194 |
50 |
1244 |
9.69% |
| sh |
1407 |
62 |
1469 |
11.44% |
| sparc |
4852 |
1313 |
6165 |
48.02% |
| sparc-fbsd |
0 |
367 |
367 |
2.86% |
| x86 |
9432 |
3217 |
12649 |
98.52% |
| x86-fbsd |
0 |
2730 |
2730 |
21.26% |
图示 6.1: 不同架构的软件包分布 |
 |
下面的部分列出了Portage树中新近加入和删除的包。删除软件包的操作来自于多个地方,包括uri link="/proj/en/qa/treecleaners/">树清理者项目
已经移除:
已经加入:
7.
Bugzilla
统计信息
Gentoo社区采用Bugzilla(bugs.gentoo.org)来记录和跟踪bug、消息、建议和开发团队所用的其他事务。下面的饼图显示了2008年7月27日至8月29日间Bugzilla的运行情况。
图示 7.1: Bug活动构成 |
 |
在当前还未被修复的11946个bug中:14个被标为blocker,106个被标为critical,422被标为major。
被修复的bug排行榜
在这段时间内修复最多bug的开发者和团队有:
| 排名 |
开发者/团队 |
Bug数 |
| 0 |
其它 |
931 |
| 1 |
Gentoo Linux Gnome桌面团队 |
65 |
| 2 |
Gentoo核心系统软件包团队 |
47 |
| 3 |
Gentoo安全 |
44 |
| 4 |
Gentoo游戏 |
41 |
| 5 |
Python Gentoo团队 |
34 |
| 6 |
media-video团队 |
33 |
| 7 |
Portage团队 |
27 |
| 8 |
Gentoo Linux bug wranglers |
26 |
| 9 |
Gentoo non-Linux Team |
26 |
图示 7.2: Bug关闭排行榜 |
 |
bug分配排名
在这段时间内被分配得到最多bug的开发者和团队有:
| 排名 |
开发者/团队 |
Bug数 |
| 0 |
其它 |
720 |
| 1 |
新软件包的默认受托人 |
85 |
| 2 |
Gentoo安全 |
53 |
| 3 |
Gentoo Linux Gnome桌面团队 |
30 |
| 4 |
Gentoo KDE团队 |
26 |
| 5 |
Gentoo核心系统软件包团队 |
25 |
| 6 |
Java团队 |
21 |
| 7 |
Gentoo工具链维护者 |
20 |
| 8 |
Gentoo/BSD团队 |
20 |
| 9 |
Gentoo X packagers |
18 |
图示 7.3: Bug分配排行榜 |
 |
8.
加入我们
GMN的内容依靠志愿者和社区成员提供。如果您有兴趣为GMN写文章,请将纯文本或GuideXML格式的文章寄到gmn-writers@gentoo.org。
注意: 下一期的投稿截止日期为:2008年9月19日。 |
我们热盼所有月报读者的反馈。如果你对文章、栏目有什么主意,或者对GMN有什么想法,不要犹豫,赶快发信给gmn-feedback@gentoo.org。
你可以把关于GMN的反馈和评论发表到该页面。
9.
月报订阅
订阅Gentoo月报,请发一封空邮件到gentoo-gmn+subscribe@gentoo.org。
退订Gentoo月报,请从你订阅的邮箱发一封空邮件到gentoo-gmn+unsubscribe@gentoo.org。
10.
其他语言
Gentoo月报有下列语言的版本:
|