linux(fedora13)下google chrome 安装后无法启动Failed to move to new PID namespace: Operation not permitted

系统环境:fedora13, linux 2.6.31.5-127.fc12.i686.PAE, gnome

核心操作:关闭selinux

以前使用fedora12及更早的fedora版本,安装chrome都非常正常,安装后,就可以正常启动运行。但这次,突然出问题了,从系统菜单里启动,老半天没有一点反应,查看进程,有chrome进程,看来是有错误了。于是杀死进程,命令行启动,看看究竟是什么错误消息。

/usr/bin/google-chrome: /lib/libz.so.1: no version information available (required by /usr/bin/google-chrome)
/usr/bin/google-chrome: /lib/libz.so.1: no version information available (required by /usr/bin/google-chrome)
Failed to move to new PID namespace: Operation not permitted

习惯性的拿错误消息问google,结果全是英文页面,看了两个,好像也没有说出来最终的解决方法。那就是自己捣腾一下,说不定就解决了。

上面两行错误消息,看不出来名堂,但下面的条里 not permitted,没权限,怀疑是否是不是selinux的原因,但没有看到selinux消息报告,所以之前没有想到这里,印象中sellinux是启动的,fedora13安装后,selinux就是启动的,经常会造成一点问题,由于对selinux并不熟悉,出问题时只好关掉。扯远了——不管是不是,关掉看看。

setenforce 0

再从命令行里启动,好了,chrome还给一个对话框,大意说启动失败了,是不是要报告错误,选择跳过,然后是就正常的询问是否从其它浏览器里导入设置,因为firefox正在启动中,无法完成导入,也跳过。接下来就是跟平时无两样的chrome。

从命令行终端里拷出来从安装到问题解决的整个过程的消息,稍做删减,帖在下面,以备查阅。

-----------------------------------------------------------------------

[feng@fsc ~]$ su
密码:
[root@fsc feng]# touch /etc/default/google-chrome
[root@fsc feng]# pwd
/home/feng
[root@fsc feng]# cd downloads/
[root@fsc downloads]# ll
总用量 293296
.......
-rw-rw-r--. 1 feng feng 27101501  9月 24 22:24 google-chrome-stable_current_i386.rpm
.......
[root@fsc downloads]# ll
总用量 293296
.......
-rwxr-xr-x. 1 feng feng 27101501  9月 24 22:24 google-chrome-stable_current_i386.rpm
.......
[root@fsc downloads]# rpm -ivh google-chrome-stable_current_i386.rpm
warning: google-chrome-stable_current_i386.rpm: Header V3 DSA/SHA1 Signature, key ID 7fac5991: NOKEY
error: Failed dependencies:
lsb >= 3.2 is needed by google-chrome-stable-6.0.472.63-59945.i386
[root@fsc downloads]# yum install lsb
已加载插件:presto, refresh-packagekit
设置安装进程
解决依赖关系
--> 执行事务检查
---> 软件包 redhat-lsb.i686 0:4.0-5.fc13 将被 安装
updates/filelists_db                                     | 6.8 MB     00:32
--> 处理依赖关系 /usr/bin/pax,它被软件包 redhat-lsb-4.0-5.fc13.i686 需要
--> 执行事务检查
---> 软件包 pax.i686 0:3.4-10.fc12 将被 安装
--> 完成依赖关系计算

依赖关系解决

================================================================================
软件包              架构          版本                  仓库              大小
================================================================================
正在安装:
redhat-lsb          i686          4.0-5.fc13            updates           25 k
为依赖而安装:
pax                 i686          3.4-10.fc12           fedora            67 k

事务概要
================================================================================
Install       2 Package(s)

总下载量:92 k
Installed size: 156 k
确定吗?[y/N]:y
下载软件包:
Setting up and reading Presto delta metadata
updates/prestodelta                                      | 332 kB     00:01
Processing delta metadata
Package(s) data still to download: 92 k
(1/2): pax-3.4-10.fc12.i686.rpm                          |  67 kB     00:00
(2/2): redhat-lsb-4.0-5.fc13.i686.rpm                    |  25 kB     00:00
--------------------------------------------------------------------------------
总计                                            123 kB/s |  92 kB     00:00
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
正在安装       : pax-3.4-10.fc12.i686                                     1/2
正在安装       : redhat-lsb-4.0-5.fc13.i686                               2/2

已安装:
redhat-lsb.i686 0:4.0-5.fc13

作为依赖被安装:
pax.i686 0:3.4-10.fc12

完毕!
[root@fsc downloads]# rpm -ivh google-chrome-stable_current_i386.rpm
warning: google-chrome-stable_current_i386.rpm: Header V3 DSA/SHA1 Signature, key ID 7fac5991: NOKEY
Preparing...                ########################################### [100%]
1:google-chrome-stable   ########################################### [100%]
job 1 at Fri Sep 24 22:34:00 2010
[root@fsc downloads]# ps aux |grep chrome
feng     11721  0.0  0.3  67368  9068 ?        S    22:33   0:00 /opt/google/chrome/google-chrome
feng     11724  0.0  0.0  67636  2540 ?        S    22:33   0:00 /opt/google/chrome/google-chrome
root     11725  0.0  0.0      0     0 ?        Z    22:33   0:00 [chrome-sandbox] <defunct>
root     11769  0.0  0.0   4316   736 pts/0    R+   22:34   0:00 grep chrome
[root@fsc downloads]# exit
exit
[feng@fsc ~]$ chrome
bash: chrome: command not found
[feng@fsc ~]$ google-chrome
/usr/bin/google-chrome: /lib/libz.so.1: no version information available (required by /usr/bin/google-chrome)
/usr/bin/google-chrome: /lib/libz.so.1: no version information available (required by /usr/bin/google-chrome)
Failed to move to new PID namespace: Operation not permitted

^C
[feng@fsc ~]$ lsb >= 3.2 is needed by google-chrome-stable-6.0.472.63-59945.i386
[feng@fsc ~]$ su
密码:
[root@fsc feng]# setenforce
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@fsc feng]# setenforce 0
[root@fsc feng]# setenforce 0
[root@fsc feng]# exit
exit
[feng@fsc ~]$ google-chrome
/usr/bin/google-chrome: /lib/libz.so.1: no version information available (required by /usr/bin/google-chrome)
/usr/bin/google-chrome: /lib/libz.so.1: no version information available (required by /usr/bin/google-chrome)
/opt/google/chrome/chrome: /lib/libz.so.1: no version information available (required by /opt/google/chrome/chrome)
/opt/google/chrome/chrome: /lib/libz.so.1: no version information available (required by /opt/google/chrome/chrome)
[11975:11975:33768698664:ERROR:chrome/common/json_pref_store.cc(44)] Error reading Preferences: File doesn't exist. /home/feng/.config/google-chrome/Local State: 没有那个文件或目录
[11975:11975:33768781502:ERROR:chrome/common/json_pref_store.cc(44)] Error reading Preferences: File doesn't exist. /home/feng/.config/google-chrome/Default/Preferences: 没有那个文件或目录
/proc/self/exe: /lib/libz.so.1: no version information available (required by /proc/self/exe)
/proc/self/exe: /lib/libz.so.1: no version information available (required by /proc/self/exe)
^Z
[2]+  Stopped                 google-chrome
[feng@fsc ~]$ bg 2
[2]+ google-chrome &
[feng@fsc ~]$

[转]BSD差在Linux操作系统哪里/BSD与linux比较

很多人喜欢Linux操作系统,你了解Linux操作系统么?你为什么喜欢Linux操作系统呢?说到Free Software的OS,当属Linux,BSD相对来讲是冷门多了.但BSD的风评可不会比Linux差呀?那么是什么原因造成Linux比BSD更受 欢迎呢?

Linux是出现约在BSD官司缠身、以及Internet开始风行之际.Linux的开发者及爱好者正好能透过Internet实时得发布新闻、 发表新点子、提问讨论、递送程序代码及进行错误回报,这种藉由Internet的分布式合作方式带给Linux惊人的活力和无限的生命力,而经由 Internet所带来的这种活力和生命力正是Linux长久以来能和BSD分庭抗礼的主要原因之一.
Linus Torvalds的管理哲学:

也许LinusTorvalds并不是像BillJoy(BSD的开创者)那样是个天纵英才的程序设计师,但他无疑的是超一流的领导者.要知道,能 参与LinuxKernel开发的往往都不是什么泛泛之辈,Linus如何在这些天资聪颖的计算机怪才之间折冲樽俎是非常耐人寻味的.

硬件支持:
在Linux现身之时,刚好是人们开始买得起个人计算机时.但糟糕的是,当时的BSD对于当 时的个人计算机所使用的80386硬件的支持度并不好,而一般老百姓应该不太会为了玩BSD而特地购买高价的服务器设备,因此人们,尤其是穷苦的大学生, 若要玩Unix时只有Linux可供选择,相对来说BSD的吸引力当然就大不如Linux了.不过说起硬件支持,其实Linux和BSD也只是难兄难 弟,Linux是较佳,但有些太新太特殊及特定制造商的硬件Linux还是无法支持!

GNU的大力支援
GNU提供了一个操作系统所需的各式各样必要组件,但最重要的组件-Kernel却迟 迟没有着落.原本计划好要成为GNU官方Kernel的HURD的发展一直很不顺利,而Linux的出现就刚好出现填补了GNU这个拼图上最重要的一个大 洞.另外,虽然GNU的软件质量是毋庸置疑,但BSD却希望他们的开发团队所维护的核心工具都能以BSDL发行,所以因为授权兼容性的关系,很多GNU软 件就被BSD的人们摒除在外了.因此喜爱GNU软件的人们除了Linux之外就似乎别无选择了.Linux和GNU是分不开的:没有GNU,那么没有任何 工具程序的Linux根本无用武之地;而没了Linux,GNU软件就少了一个可以尽情发挥的舞台了.因此,个人可以接受人们说Linux的全名应该是 GNU/Linux.若我们仔细想想Linux的发展成长过程,个人认为如此称呼并不为过.

而Linus也说过其实他并不是很反对GNU/Linux这个名字,饮水思源,毕竟Linux的确是藉助了GNU太多的核心工具才有今天的成就.若 当时没有GNU计划,那么Linux根本不会出现在这个世界上:当初Linux0.0.1发表时,Linus就只完成了以下功能:可用GCC编译,然后它 能做的也只有执行BASH这个Shell而已,而这2个工具恰巧都是GNU的作品.我们可以看到,Linux刚开始就和GNU结下不解之缘了.

教堂与市集:
BSD走的是教堂式的学院派路线,而Linux则是代表了市集式的骇客精神;

多样的版本:
Linux的松散结构也反应在Linux的发行版上.因为Linux并没有什么官方发行版,所以任何人只要有兴趣有能力,都可以自行发行Linux,这使得我们能轻易得在Internet上找到超过200种以上的Linux发行版,而实际数字恐怕远不止如此.

商业公司的支持:
若说Linux为什么能快速得进入商用市场,我想RedHat的成立应该是一个关键性 的因素.对于大型企业而言,或许授权费用的多寡并不是重点,他们要的是能够说服上司及股东的解决方案.透过RedHat所提供的技术支持,信息部门也比较 敢将Linux列入解决方案之中.这项优势是没什么商业支持的BSD所难以匹敌的.

媒体的推波助澜:
若说到自由软件界的代表人物,我想人们脑海中会浮现的名单应该少不了 RichardM.Stallman、EricS.Raymond及LinusTorvalds这几位指标性人物.RichardM.Stallman是 公认的自由软件界的精神领袖,他的意见对于GNU还是具有一定的影响力.EricSteven Raymond则是黑客文化的传道士,他发表了不少像是《教堂与市集》、《提问的智慧》之类对黑客文化影响深远的文章.而Linus Torvalds则是Linux Kernel项目领导人.这几位指标人物彼此之间似乎总是意见不合,但他们却有一个共通点-他们都是Linux的拥护者.

也就是说,当几位自由软件界的代表人物都在努力为Linux宣传的同时,BSD自然从人们的雷达范围中消失了.不管BSD再怎么棒,但人们不晓得的话也是罔然.

GPLvs.BSDL:
RichardM.Stallman之所以是自由软件界的精神领袖,除了他发起 了GNU计划之外,个人认为他为了GNU而撰写的GPL更是决定性的因素.GPL是一种偏向于开发者的回馈条款:使用者可以自由运用GPL程序代码,但所 有修改必须也以GPL开放,让所有人(包括原始程序设计者)都能受益.这是能确保程序代码永远能让所有人自由使用的终极手段.相较之下,BSDL应该是偏 于使用者的一种无偿授权:使用者如何自由运用这些程序代码,程序设计师无权置喙,只要宣告这个软件是BSDL授权即可.因此,BSDL的软件可能有一天会 变成封闭软件,像Microsoft在Windows 2000核心里就采用了一些来自BSD的网络组件,但BSD的人们却没有因而受惠.Microsoft并没有必要回馈那些修改后的程序代码.

软件的支持:
也许这是互为因果关系,因为BSD家族的市占率比Linux低多了,BSD的开发者也相对 较少,因此有不少缺乏资源的开放原始码软件就没有多余的心力能放在BSD上,这导致很多软件对BSD的支持度就没Linux那么好了.以Free BSD为例好了.FreeBSD是针对i386硬件而开发的BSD分支,长久以来Free BSD在功能、稳定、安全、效能等各方面的表现颇受好评,您可以在Google上找到一篇"Yahoo! and FreeBSD"以为佐证.

通过本文你就了解了Linux操作系统比BSD更受到人们的欢迎了。

Linux不是Windows/Linux is Not Windows

如果你访问了这个页面,那么十有八九你是一个 Linux 的新用户,你正遇到许多关于如何由 Windows 转向 Linux 的困惑,这篇文章的目的正是向新手解释这个问题。由于这个大问题衍生出许多枝节,下面我将对此逐一进行讨论。

问题一:Linux 和 Windows 完全不一样

你一定会惊讶于有这么多人对 Linux 发出相似的抱怨,他们奔向Linux,希望找到一个免费的、开源版的 Windows。通常,这正是那些狂热的 Linux 使用者所告诉他们的那种状况。然而这却是个荒谬的期待。

人 们尝试 Linux 的原因不尽相同,但所有的原因都可以归结为一点:他们希望 Linux 会比 Windows更优秀。正是出于这一点,Linux的低成本、更广阔的选择范围、高性能和高安全性——当然,还有许多其它的方面——被作为与 Windows比较时的衡量标准。往往每一个开始尝试 Linux 的Windows 用户都是如此。

这正是问题之所在。

太 多的人都忽略了这样一个事实:从逻辑上讲,在保持某样东西与参考物体完全相同的前提下,将其做得更好是绝无可能的。正如一个完美的复制品将与它的母版毫无 差异,但是它不可能会超越原版。所以当你怀抱着 Linux 的使用方式该和使用 Windows 差不多的观念而尝试Linux,并希望它能够做得更好,你便会不可避免地发现他们之间的不同,并且把这些不同之处看作是 Linux 的缺陷。

举一个简单的例子,让我们来想一想驱动程序的升级吧:通常的情况下,倘若我们要在 Windows 下升级某个硬件驱动,我们需要去硬件制造商的网站上找到并下载最新的驱动;然而在 Linux 下,我们只须简单地升级内核即可。

这意味着在 Linux 下,仅仅一次下载和升级便能提供所有适用的最新驱动,然而在 Windows 下我们却不得不浏览多个网站并分别下载升级程序。这是一个不同的过程。并且显然,这绝不会是一种糟糕的体验。然而却有很多人对此抱怨不停,只因为这不是他们习惯的方式。

或者从另一个更经常接触到的例子来看,想一想 Firefox ——开源软件最伟大的成功案例之一。这是一个席卷全球的浏览器。它是通过模仿 IE —— 那个“最流行的浏览器”而取得成功的吗?

不。 它的成功是因为它比 IE更好。它之所以更好正是因为它的不同。它有标签页浏览方式,实时动态的书签,内建搜索条,PNG(图像格式)支持,adblock扩展(屏蔽广告插 件),以及其它美妙的东西。“查找”工具条显示在底部的工具栏中,它能够查找你键入的内容并且以红色标识表示没有相匹配的内容。而 IE却没有标签页浏览,没有RSS订阅功能,搜索条只能通过第三方扩展实现,它的查找对话框还得通过点击“确认”按钮开始查找,而且还要再点击一次“确 认”才能清除“未发现”的错误提示。这无疑地证明了一个开源的应用程序通过“不同”而做到了“更好”,依靠“更好”进而取得了成功。如果 Firefox只是一个 IE 的克隆,它必然早已销声匿迹于 IE 的阴影之下了。如果 Linux 是 Windows 的一个克隆,同样的事情也会发生在Linux 身上。

因此,解决这个问题的关键在于:记住在 Linux 中那些对于你的使用习惯来说熟悉的部分,并不是说明 Linux 是新版的和改进版的 Windows。积极地面对那些不同之处,因为只有不同,Linux 才有机会真正闪耀出其光彩。

问题二 : Linux 和Windows 太不一样了

当 人们期待着 Linux 有所特色时,又一个问题接踵而至。Linux 和Windows 实在是太不一样了,一些差异简直难以让人适应。也许最典型的例子就是可供 Linux 用户选择的东西实在是太多了。对于一个刚上手的Windows 用户,他已拥有一个经典的或 Windows XP 风格的桌面主题、写字板程序、IE 浏览器,OutlookExpress;然而对于一个初学 Linux 的家伙,他面前有上百种发行版供其挑选,然后,是 Gnome、KDE 或者Fluxbox(桌面环境),vi、emacs 或者 kate(文本编辑器),Konqueror、Opera、Firefox 或者Mozilla(网页浏览器),或者其他一系列可供选择的工具。

Windows 用户不曾为了安装和使用(操作系统)而面对过如此丰富的选择。“有必要提供那么多种选择吗?”这样的抱怨帖子很常见。

Linux 真的和 Windows 有那么大的区别吗?不管怎么说,它们都是操作系统。它们都做同样的工作:操作你的计算机,让你有个运行应用程序的东西,自然它们多少都有些共通的地方吧?

让我们从这个角度看问题:出门看看路上行驶的各种不同车辆。所有的车辆不管是什么样的设计,都有同样的目的:从路上把你由A处运到B处。注意它们有不同的设计。

但是你会想,汽车之间的差异非常小:它们都有方向盘、脚踏板、变速杆、手刹车、车窗、车门、油箱……如果你能够开这部车,你就能开任何一部车。

确实如此。但你有没看见过有些人不开汽车,取而代之他们骑摩托车?

从一个版本的 Windows 切换到另一个版本就像从一辆汽车换到另外一辆汽车。Win95 到 Win98 ,老实说我说不出有什么区别。Win98 到 WinXp,差别比较大但是也没有什么真正的重大区别。

但是从 Windows 切换到 Linux 就象从开汽车切换到骑摩托车。他们都是操作系统(道路车辆)。他们可能都使用同样的硬件(道路)。他们可能都提供一个运行应用程序的环境(把你从甲地运到乙地)。但他们使用本质不同的两种方法来达到目的。

Windows(汽车)对于病毒(小偷)并不安全,除非你安装反病毒软件(锁上车门)。Linux(摩托车)却没有病毒(车门),所以即使你没有安装反病毒软件(没锁车门)也非常安全。

让我们反过来看一看:

Linux(汽车)从根本上用于多用户(乘客们)。Windows(摩托车)用于单用户(乘客)。每个 Windows 用户(摩托车驾驶员)每时每刻都要习惯集中精力控制他的计算机(车辆)。而一个 Linux 用户(汽车乘客)只有在以 root 根用户身份登录(坐在驾驶座上)时才要去控制计算机(车辆)。

通 过两种不同的方法来达成同样的目标,他们各有优缺点:当载上一家子的成员和大包小包的货物从甲地至乙地时,一辆车显然是明智的选择:因为它有充裕的座位以 及足够的储存空间。而对于一个人从甲地到乙地的情况,摩托车则是更好的选择:因为它不怎么会遇上堵车,消耗的燃油也更少。

无论选择摩托车或是汽车,仍有很多事情不会改变:你要把油加进油箱,把车开在同一条道上,而且必须遵守红绿灯,在转弯前要打转向灯,你同样也要遵守限速指示。

但是也终究有很多情况不同了:汽车驾驶者不必带着安全头盔开车,摩托骑手不用系安全带;开车的人转动方向盘来转弯,摩托车驾驶者则要倾斜身子改变重心;开车的人需要踩油门踏板来加速,而摩托车通过手旋转手把来控制加速。

一 位汽车司机如果试图通过转移重心来拐弯,很快就会陷入一堆麻烦中。同样的,一个 Windows用户如果认为自己的经验可以直接派上用场,结果也会因为相同的原因而徒劳无获。事实上,较之电脑新手,一个 Windows “高级用户”在Linux 的使用过程中常遇上更多麻烦。那些经验丰富的 Windows用户在面对问题时,如果无法解决,常会觉得“如果我这么有知识的,都搞不定,那新手就更不别想了”,因而得出“Linux离桌面应用还有十 万八千里呢”的强烈想法。但这显然是与事实不符。

解决方法在于:Windows 用户必须意识到他只是一个有经验的 Windows 用户,而不是有经验的电脑用户,Windows 用户必须意识到当自己在尝试 Linux 时,他又成了一个新手。

问题三: 文化冲击

子问题 A : 那是一种文化

Windows 用户或多或少地处于一种消费者和供应商之间的关系:他们花钱买软件,获得授权,得到支持,等等。他们希望软件能够有确切的可用性。因此他们习惯于去得到使 用软件的权利:他们花钱去得到技术上的支持以及他们得到他们想要的权利。他们也经常要与一些除了个人之外的实体打交道:例如他们与一家公司签一份合同。

Linux 用户有着更多的一致性。他们不需要花钱去买软件,不需要为得到技术上的支持而耗费财力。他们免费下载软件,并且使用在线聊天工具和到论坛去寻求帮助。他们和个人打交道,而不是公司。

一个 Windows 的用户如果只是把他的观点带到 Linux 中,那么他是不会喜欢上 Linux 的,这需要慢慢地适应。

引 起矛盾的最大原因在于在线交流方面:一个初学 Linux的菜鸟在遇到问题时寻求帮助,当他没有得到他可以接受的答案的时候,他便开始抱怨并且想要得到更多的帮助。因为这正是他以前用付费来获得帮助的 方式。问题就是这不是付费提供帮助的系统。而是很多热心人发自内心地帮助其他人解决问题的系统。一个新的用户没有任何权利去向这些热心人索要帮助,这就如 同一个想要得到施舍的人,还要求从捐赠者那里获得更多的捐赠品一样。

同样,一个 Windows用户习惯了使用商业软件。这些软件在没有做到足够的可靠性、功能性以及对用户友好的界面之前,公司是不会发布该软件的。因此这正是 Windows用户希望软件是从1.0 版本开始的。而 Linux 软件一旦重写就会立即发布,因此是从 0.1版本开始的。这样的,真正需要这些功能的人就会马上得到它;感兴趣的开发者会来帮助改进代码,;以及社区就会知道接下来要做什么了。

如果菜鸟在使用Linux时遇到了困难,他会抱怨:这个软件没能满足我的需求,并且他认为他有权得到这样的满足。如果他得到这样带有讽刺性的回答:“如果我是你,我要求退款!”,他的情绪将会更差。

因此,为了避免这些问题,应做到:只要记住,你并没有付给那些软件开发者或者在线帮你提供技术指导的人任何钱。他们并不欠你任何东西。

子问题 B : 新的 VS. 旧的

Linux 几乎是因黑客的业馀爱好而诞生的。它的成长也使得易于它吸引了更多志同道合的黑客们。Linux在获得一个易于使用的可用安装程序前一直默默无闻。在相当 长的时间里,它在大众眼中只是一个极客(Geek)而已。可以说Linux“始于极客,馈于极客”。直至今日,大多数 Linux 的老用户仍自认为是极客。

这是件非常好的事情:如果你在硬件或软件方面有问题,存在一大群极客们不断寻找解决方案这个状况,显然一种明显的优势。

但 长久以来 Linux 的成长仍旧十分有限。尽管存在一些可以被绝大多数人安装的发行版本,甚至一些版本基于 CD 并且与用户使用的硬件并无冲突。当Linux开始因其无病毒和廉价的升级而吸引一些非发烧友用户时,两大用户阵营间并不是没有摩擦,但双方都明了一点:对 方都没有恶意,仅仅是缺乏相互理解而已。

首先,你面临的是核心极客们仍然假设所有使用 Linux的用户们都是极客同志。这意味着他们认为所有人都对此有很深入的理解,这导致了他人控诉他们的一些行为是傲慢、自大和无礼的。事实上,有时如 此。但大多时候却并非这样:“每个人都应知道”这样的善意表达被说成了“地球人都知道!”——大相径庭。

其次,你面临着从使用的商用操作系统转投而来的新用户。这些用户已习惯使用人机界面友好的软件,他们也是不确定因素。

这类问题起因于不同使用习惯的碰撞:第一类人沉醉于不断地按自己喜好重构系统,而第二类人对操作系统如何工作漠不关心,只要它能工作就好。

在乐高(Lego)玩具发生的类似的情况正好阐述这种问题。试想下面的情景:

新用户(以下简称“新”):我想要一个新玩具汽车,每个人都因乐高汽车的好玩而着了迷。所以我也买了它,但当我到家後我才发现,我的盒子里只有积木和齿轮!我的车子在哪里?

老用户(以下简称“老”):你应该在积木之外组装一辆车,这才是乐高的真谛。

新:什么??我不知道应怎样拼装这个车子。我不是个机械师。为什么我应该知道如何组装它?

老:盒子里有使用手册。它上面写着拼装车子的步骤。你不用知道原理,只要按照按部就班就好。

新:好吧,我找到了步骤。这将占用我很多时间!为什么厂家不能装好了再卖给我,还得让我自己动手??

老:并不是所有人都满足于将乐高做成玩具车。这些积木可以被我们组成万物。这才是游戏的真谛。

新:我仍旧不明白为什么厂商不能给我们这种想要车子的人一个成品,如果那些喜欢动手的人高兴可以自己拆了它阿。无论如何,我还是将它组装起来了,尽管某些部件时不时地掉下来。我有什么方法可以解决吗?我能将它们粘起来吗?

老:这就是乐高。他就是用来拆装的。这才是游戏的真谛。

新:但我不希望总是拆拆装装,我仅仅希望一个玩具车而已!

老:呃,欢迎您到地球来。你买的是乐高吗?

很明显,对那些只想要一个玩具车的人来说,乐高并不是为他们准备的。上面的情景应该不会发生在你的生活中。乐高的价值在于你可以建造过程中体会乐趣而且你也可以将它组装成任何你想要的东西。如果你不想动手拼装,只能说乐高不适合你。这显而易见。

由于长久以来一直关注 Linux 的老用户,同样的问题在 Linux 上越发明显:它是开源的、完全可定制的软件集。这才是真谛。如果你不想修改一些组件,为什么自找麻烦来使用它呢?

与 乐高出售成品玩具的做法略有相似,通过最近的一系列的成果提升了非黑客用户使用 Linux 的舒适性,这使得更广大的用户可以使用Linux。也正因如此,你仍可以听到与上面相似的对话,程度也仅是略有不同。新用户抱怨老用户只考虑基本特性,他 们不得不通过阅读手册才能实现一些功能。对太多发行版本的抱怨,对软件过多配置选项的抱怨和对运行时时常报错的抱怨不正如对乐高有太多模块的抱怨一样忽略 了它可以被用来按你想发拆装成事实吗?

因此,为了避免这个问题:请铭记现在的 Linux 已今非昔比。Linux 社区最大的也是最关键的组成部分——黑客和开发者们,他们因 Linux 的可以按需定制而欢喜;他们也会可制定能力的丧失因而神伤。

问题四: 为设计者而设计

在汽车工业中,你很难发现一个人即设计车辆引擎也设计车辆内饰:这些是完全不同的技能。没有人想要只是看起来可以跑得很快的引擎,同样也没有人想要一个做工出众但狭小且肮脏的内饰。基于同样的道理,在软件产业,用户界面(UI)往往不是由软件编程人员设计的。

但 在 Linux 的世界却大不相同:一个项目往往是因个人的兴趣而产生。个人也包办了所有的工作,因此这些项目的界面往往缺乏了“用户友好”的特性:用户对这个软件了如指 掌,所以他也就不需要了帮助文件等。vi就是一个很好的例子,最初它的目标用户就是为那些了解它工作方式的人。因而设计者从来都没有想过如何用其他方式退 出 vi,所以新用户不得不靠重启计算机退出的事情时有发生。

但是,自由开源软件(FOSS)程序员与商用软件程序员的一个最重大区别在 于,FOSS程序员的作品都是他们自己想要使用的东西。因此当作品不能被新用户“舒适”使用的同时,它又成为了最终用户最需要的东西:因为作者也是最终用 的一员。商用软件的程序员却大不相同,他们总是为其他人编写软件,而且这些用户都不是专家。

所尽管 vi 拥有拥有一个令新手望而生畏的界面,但它仍然在当今流行,这又归功于他的界面:当你熟悉後就会发现它原来无比强大。Firefox 也是被经常浏览网页的人编写出来的。Gimp 同样是出自经常处理图形文件的人之手。不胜枚举。

Linux 的界面对于新手而言同样的有些“难度”。尽管 vi名声在外,但他仍然不在那些需要快速修改一些文件的新手的考虑之列。如果你在一个软件生命周期的早期使用它,光鲜亮丽且友善的用户界面永远只高挂在 “计划”列表之上:功能优先。没有人先雇好装修队再去找楼盘,程序员们都是实现功能再不断改进界面。

所以,为了避免这个问题:寻找那些已便于上手为目的设计的软件,或者接受那些与你使用习惯急剧不同的软件。抱怨 vi 对新手不够友好只是舍本求末罢了。

问题五: “用户友好”的神话

在电脑世界里,“用户友好“是一个十分广泛的专有名词。甚至有一个网络笑话就叫这个名字。但这个词却名不副实。

基本实现方法听起来似乎不错:软件的设计要从用户的想法和需要出发。这个方法一直都被认为是单一的实现办法,但事实并非如此。

如果你一辈子都在进行文书处理的工作,理想的软件对你来说就是个快捷强大、能让你投入最小的精力来实现最大的工作效率的文字处理软件。简单的键盘快捷键和无须鼠标的操作将是最基本的需求。

但如果你很少做字处理的工作,你只是要写一封普通的信,那么你不会想着去学会那些键盘快捷键操作方法。排列有序的菜单和一目了然的工具栏图标就是你的理想环境。

很明显,你为某个用户的需求所设计的软件可能对其他的用户来说并不合适。如此说来,若我们每个人都对软件有不一样的需求,那这些软件怎么能自称“用户友好”呢?

简单来说:“用户友好”并非事实,只是为了让复杂的情况看上去变得简单一点而已。

那么“用户友好”到底是什么意思呢?好吧,从那些使用这个词的文章中来看,“用户友好”的软件实际上意味着“该软件对那些以前从未使用这个软件的用户们来说也不是那么难上手”。这就使得那些看上去用户界面都差不多的软件都被归类为“用户友好”。

子问题 A: 熟悉的就是友好的

所以在大多数被认为“用户友好”的文字编辑 和文字处理的系统中,你的剪切和复制使用 “Ctrl+X” 和 “Ctrl+V” 来完成,这完全不直观, 但是每个人都习惯这些快捷键,所以他们把这当作“友好的”快捷方式。

如果有人使用 vi 并且发现里面 “d” 是剪切,“p” 是复制,这将被当成是不友好的:因为这不是大多数人习惯的方式。

但这是更好的方式吗? 明显是的。

如果使用“Ctrl+X”的方法,你怎样从你当前正在编辑的文件中剪切一个单词?(没有鼠标的前提下!)

你必须从开头的字符开始,用“ Ctrl+Shift+Right”来选择单词.

然後“Ctrl+X”把它剪切下来。

vi中的方式呢?“dw”就是删除单词的意思。

如果要剪切 5个单词使用 “Ctrl+X” 方式会出现什么情况呢?

从开头的单词开始:

“Ctrl+Shift+Right”

“Ctrl+Shift+Right”

“Ctrl+Shift+Right”

“Ctrl+Shift+Right”

“Ctrl+Shift+Right”

“Ctrl+X“

要使用5个动作

在 vi 中的情况呢?

d5w

vi 方式具有更好的功能性和直观性 。“X” 和 “V”并不是能够直观记忆“Cut”和 “Paste” 命令的,反之 “dw” 对于 “delete” 和 “p” 对于 “Paste”更加直观,相对于 “X” 和 “V” 方面,vi明显是更好的。可是由于她不是大家所熟悉的,因此她被认为是不友好的。并不是因为其他的原因,纯粹的习惯因素使得Windows成为了更加友好 的系统。因此我们要学习问题一:Linux 和 Windows 完全不一样。告诉大家:不可避免,Linux 经常显得没有 Windows “友好”。

为了避免这个问题,你们要记住“友好”并不意味着习惯,试着用你的方式来做事,如果没有用的话,试着想想一个初学者会怎么做,然後你就知道了更简单的方法。

子问题 B: 低效的就是友好的

这是一个可悲的但无法逃避的事实。似乎你越想提高一个程序的功能性,它就看起来越友好。

这是因为友好性是通过在用户界面中使用简单、可视化的“线索”实现的——越多越好。毕竟,如果一个完全的计算机新手被放到一个所见即所得的字处理软件前并被要求把一些文本变成粗体,接下来很有可能:

  • 他会认为 "Ctrl+B" 是通常的方法。
  • 他会寻找线索,并尝试点击 "编辑" 菜单。如果不成功,他就会从接下来的一系列菜单中尝试比较像的那个:“格式”。新的菜单有一个看起来很有希望的“字体”选项。嗨!这里有我们想要的“粗体”选项。成功了!

下次你再做任何文字处理,都想试着通过菜单来完成每一件工作:不用快捷键,也不用工具栏图标。菜单就是一切。当任务突然需要大量按键和鼠标点击时,你会发现你比爬还慢。

这 样使软件变得“用户友好”就像在自行车上装辅助轮一样:它让你能马上骑起来起来,不需要任何技巧和经验。这对一个初学者来说是完美的。但是没有人会觉得所 有的自行车都应该加上辅助轮销售。如果你今天得到这样的一辆自行车,我敢打赌你要做的第一件事就是除去这不必要的阻碍:一旦你知道怎样骑车了,辅助轮就没 用了。

同样的道理,大量的 Linux 软件是设计成不带“辅助轮”(辅助工具)的——它是为已经有一些使用的基本技能的用户设计的。毕竟,没有人是永远的新手:无知是短命的,知识是永远的。因此 Linux 软件是以大量的知识为前提设计的。

这听起来也许像是借口:毕竟,MS Word(微软的Word)有全部的友好菜单,并且有各种工具栏按钮, 而且有快捷键……它是世界上最棒的。真的吗?友好且有效的。

然 而,我们必须透过表象看问题。首先,这个想法的可行性:让一个软件拥有菜单、工具栏、快捷方式等一切意味着大量的源代码编写,而没人为 Linux开发者花费的时间付帐;其次, 这样做依然没有真正考虑到那些高端用户;极少有专业的文字录入者使用MS Word。你见过哪个编程的人用 MSWord 吗?与此相比,想想有多少人用 emacs 和 vi。

为什么会这样?首先,这是因为某些“用户友好”的行为会导致低效: 参看上面的“剪切和粘贴”的例子。其次,这还因为 Word大部分的功能被放在了菜单里,因此你不得不使用菜单。只有某些最常见的功能可以作为按纽被放在界面的工具栏上。高级用户不得不花大量的时间来找到 那些较少用道,但对高级用户来说依然很常用的的功能。

另外请记住,不管怎样,那些“辅助轮”在 Linux 软件中也同样有,尽管他们不是那么容易被发现,但实际在 Linux 中通常都会有。

以 mplayer 播放器为例。你可以在终端输入 mplayer视频文件名命令来播放视频文件。你可以使用方向键,PageUp、PageDown键进行快进、后退等操作.这些可能还不能称之为完全的 “用户友好”,但如果你在终端输入 gmplayer 视频文件名 ,你就会看到图形版的播放器,它同样拥有漂亮、友好的界面,熟悉的按钮。

再 用从 CD 转换到 MP3(或 Ogg)为例: 如果使用命令行, 你需要先使用 cdparanoia命令。然后你再需要一个编码器……这会是一个恶梦,就算你完完全全清楚如何使用 (imho) 包。所以,下载和安装Grip吧。这是一个容易使用的图形软件,自动的在背后使用 cdparanoia 命令和编码器,令你的转换过程变得简单,甚至支持CDDB,能自动为你的档案命名。

同样发生在抓取DVD上:选择正确的编码是一场噩梦。但是使用dvd::rip软件,可以在一个任何人都能操作自如的图形界面来完成整个编码过程。

因此避免这个问题:要记住“辅助轮”(辅助工具)仅作为Linux的扩展,而不是由主程序自动提供的。而且有时,“辅助轮”还不成为设计的一部分。

问题六:模仿 VS. 汇合

当人们发现 Linux 不是他们想要的 Windows 复制品时,经常争论一件事,就是坚持认为 Linux 一诞生,这就是(或应该是)其努力的方向,而且那些不明白这一点的人错误地帮助,使 Linux 更像 Windows。由于这一点,他们展开激烈的争论:

Linux 已经从命令行时代进入了图形界面时代,这是复制 Windows 的明显尝试。

不错的理论,但是错了:最初的 X 窗囗化系统(见 附录)是于1984年发布,继承自1983年移植到 Unix 上的 W 窗口化系统。而 Windows 1.0是在1985年才发布的。Windows 在1990年发布第三版之前并没有做大——那时,X 窗口化系统已经演化成我们今天使用的 X11版本好几年了。Linux 在1991年才开始,所以 Linux 没有开发一个 GUI(图形用户界面)来模仿 Windows:它只是使用了一个在Windows 出现之前就已经存在的 GUI。

Windows 3 系列让位于 Windows 95,后者带来了图形界面的革命性变化;在这以后很多年,微软都没能作出与此类似的创举。Windows 95 带来了多项创新的特性:拖放功能、任务栏等等。当然,这些也同样被 Linux 所借鉴。

事实上……不是这样的。上述所有的特性在微软使用前就已经出现了。尤其,NeXTSTeP(见附录介绍)是一个非常先进的图形用户界面(就当时而言),它明显早于 Win95 ──1989年发布了第一版,1995年发布了最后一版。

不错,不错,所以微软并没有想出被我们认为是 Windows 界面的独有特性。但它还是创造了一种界面,Linux 从那时起尝试模仿它。

为了揭穿这些,我们可以引用一个经常被讨论的说法:趋同现象。它说的是:两个不同的、各自独立的系统随着时间的推移会逐渐变得类似。这种现象经常发生在生物学领域。举例来说:鲨鱼和海豚,他们都有着类似的背鳍、胸鳍和尾鳍,以及同样的流线型外形。

但 是,鲨鱼是由鱼进化而来的,而海豚则是由陆地上的哺乳动物进化而来的。他们拥有类似外形是由于他们都生活在同样的海洋环境中,他们必须朝最大效率适应海洋 环境的方向进化。实际上不会有一幕这样的场景:未进化的海豚看到鲨鱼以後就开始想“Wow,看看鲨鱼的鳍,它们非常有用。我也要这样进化一套自己的鳍!”

同 样,如果先看早期的 Linux 桌面、FVWM 和 TWM 以及许多简陋的 GUI(图形用户界面),然后再看看今天的 Linux桌面、Gnome 和 KDE,以及它们带有的任务栏、菜单、视觉效果。是的,不得不说现在的 Linux 比早期的更像 Windows 了。

另一方面,Windows也同样如此;我印象中 Windows 3.0 没有任务栏。那么开始菜单呢?什么是开始菜单?

Linux 过去没有任何桌面像今天的 Windows,微软过去也没有。现在他们都有了,这说明什么问题呢?

这说明两个开发阵营的成员都在寻找提升GUI(图形用户界面)性能的方法,但是解决相同的问题可供选择的方法并不多,他们难免会使用类似的方法。类似并不能说明或暗指一方在模仿另一方。记住这一点,你就不会受到这个问题的困扰了。

问题七:那些 FOSS(自由和开源软件)的事

噢,这导致了问题。非本质的:自由和开源的软件是整个事情中一个极好的和很重要的部分。但是对于一些人看来,理解 FOSS(自由和开源软件)和私有软件之间的不同是一个巨大的改变。

我已经提醒了一些事实,人们认为他们需要并喜欢技术支持。但是事实往往离得很远。

微软的使命声明是“A computer on every desktop(每个电脑都需要桌面)”——不言而喻,每一台计算机应该运行 Windows。微软和苹果公司都销售操作系统,都尽他们最大的努力来保证大多数的人们使用他们的产品:他们是企业,为了赚钱。

并且FOSS(自由和开源软件)也在那里,甚至今天,几乎都是非商业的。

当 你发电子邮件告诉我,Red Hat、Suse、Linspire 和所有Linux发行版:是的,我知道他们在“销售” Linux。我知道他们都希望 Linux 被广泛的采用,特别是他们自己的版本。但是不要混淆提供者和生产者。Linux内核不是被一个公司创造,不是为了获取利润而维持它。这些 GNU 工具不是被一个公司创造,同样也不是为了牟取利润。X11视窗系统……不错,当前最流行的实现方案是xorg,并且“.org”应该部分地告诉你需要知道 的(注:.org为非盈利组织)。桌面软件:好的。你提出一个例子,比如 KDE,由于其基于的Qt是商业化的。(译者注:现在 Qt 已经不是商业化的了)。但是Gnome、Fluxbox、Enlightenment等等,都是非盈利的。那儿是有人销售Linux,但是那只是非常少数 的。

私有软件最终用户数量的增加导致了制作那些软件公司直接的经济效益。对于FOSS(自由和开源软件)来说,并不是这样,使用人数的增 加并不会产生直接的收益。肯定是:个人自豪感,发现Bug(错误)能力的增长,更多可能得吸引新的开发者,可能有机会得到个好的工作,等等。

但 是 Linus Torvalds(Linux 的创始人)没有从 Linux 使用权上挣钱。Richard Stallman( GNU 创始人)没有从增长的 GNU使用权中获利。所有运行 OpenBSD 和 OpenSSH 的服务没有放一分钱到 OpenBSD 项目的钱袋中去。所以我们来看,这就是在Linux 和新用户之间最大的问题:

他们发现了不想要的东西。

新用户来到 Linux,他们曾经使用一种操作系统,那时,最终用户的需求至高无上的,并且“用户友好性”和“以用户为中心”被认为是第一位的。并且他们突然发现他们 自己将要使用的操作系统:仍然依赖于‘man’文档,命令行,手动编辑配置文档和Google。并且当他们抱怨时,他们没有获得悉心照顾或者承诺的更好的 东西:他们屡屡碰壁。

当然,夸大其词了。有许多人尝试去转换到 Linux 但是失败了。

从另一方面来 说,FOSS(自由和开源软件)事实上是一个非常自我的发展方法:仅当人们想工作的时候才工作,仅工作于他们想工作的东西。大部分人们没有看到任何的需 求,让 Linux 对没有经验的用户更有吸引力:它已经按照他们想要的工作了,为什么他们应该关心它为什么没有为另外的人工作呢?

FOSS(自由和开源软件)和 Internet 自身有很多相似的地方:你不需要付钱给一个网页(软件)的作者,去下载以及阅读(安装)它。对于已经有了带宽(知道如何使用软件)的人们来说,无限的宽带(用户友好的界面)并不是很感兴趣的。博客(软件开发者)不需要很多的读者(用户)来证明写博客日志(编码)。 那里是有许多人从中获得了很多的钱,但它并不是大部分商业喜欢的旧有规则:“我拥有这个,如果你想要一些,你必须付钱”;而它提供了诸如技术支持(电子商务)的服务。

Linux 对市场份额不感兴趣。Linux 没有客户。Linux 没有股东,或者一个盈利亏损的责任。Linux 不是为了赚钱而创造的。Linux 没有成为这个星球上最流行和最普及的操作系统的目标。

所 有的 Linux 社区都想要一种真正不错、充满特色、自由的操作系统。如果 Linux 最终成为一种非常流行的操作系统,那么是美妙的。如果Linux 最终拥有直观的、用户友好的界面,那么也是美妙的。如果 Linux 最终成为一个数十亿美元的产业的基础,那也是美妙的。

它是伟大的,但它不是重点。重点是,让 Linux 成为社区有能力制作的最好的操作系统。不是为了别人:为了它自己。如此普遍关于“除非 Linux如此这样,否则永远不会占领桌面”的威胁是不恰当的:Linux社区没有尝试占领桌面。他们完全不关心它放在你桌面上,是否够好,只要在他们的 桌面,运行的够好。 憎恨微软的人,Linux的狂热者,FOSS(自由和开源软件)提供者或许是吵闹的,但他们仍然只是少数的。

Linux 社区想要的是:一种操作系统能够被任何想要它的人安装。所以如果你在考虑转向 Linux。首先,问你自己,什么是你真的想要的。

如果你想要一种操作系统,没有一个汽车司机在你身边,除了给你把钥匙,把你放在驾驶员的座位上,并且希望你知道要做什么:得到 Linux。你将必须投入时间去学习如何使用它,但是一旦你学会了,你将拥有一种能够站起来跳舞的操作系统。

如 果你只是想要没有恶意软件和安全问题的 Windows:阅读好的安全实践;安装好的防火墙,恶意软件检测者和杀毒软件;用一个更安全的浏览器替换IE ;并且保持升级到最新的安全更新。有人(包括我自己)使用 Windows 从 3.1 到XP,从来不曾被病毒或者恶意软件感染:你也可以做到。不要用 Linux:非常不幸的是,它不会成为你想要它的那个样子。

如果你想要一种基于 Unix 的操作系统的安全性和性能,和以客户为中心的特点和世界著名的界面:购买苹果公司的 Mac 操作系统。Mac OSX是不错的。但是不要用 Linux:它不会做你想要它做的那样。(译者注:据个人观察,现在Linux界面已经接近或者超越Mac OS X。)

这不仅是关于“为什么我想要 Linux?”。也是关于“为什幺 Linux 想要我?”

本文遵循 Creative Commons License 创作共用协议。Creative Commons License

中文版出处 http://article.yeeyan.org/view/sctronlinux/1410

#===================================================================
#===================================================================

In the following article, I refer to the GNU/Linux OS and various Free & Open-Source Software (FOSS) projects under the catch-all name of "Linux". It scans better.

Linux != Windows

(Linux is Not Windows)

Derived works

If you've been pointed at this page, then the chances are you're a relatively new Linux user who's having some problems making the switch from Windows to Linux. This causes many problems for many people, hence this article was written. Many individual issues arise from this single problem, so the page is broken down into multiple problem areas.

Problem #1: Linux isn't exactly the same as Windows.

You'd be amazed how many people make this complaint. They come to Linux, expecting to find essentially a free, open-source version of Windows. Quite often, this is what they've been told to expect by over-zealous Linux users. However, it's a paradoxical hope.

The specific reasons why people try Linux vary wildly, but the overall reason boils down to one thing: They hope Linux will be better than Windows. Common yardsticks for measuring success are cost, choice, performance, and security. There are many others. But every Windows user who tries Linux, does so because they hope it will be better than what they've got.

Therein lies the problem.

It is logically impossible for any thing to be better than any other thing whilst remaining completely identical to it. A perfect copy may be equal, but it can never surpass. So when you gave Linux a try in hopes that it would be better, you were inescapably hoping that it would be different. Too many people ignore this fact, and hold up every difference between the two OSes as a Linux failure.

As a simple example, consider driver upgrades: one typically upgrades a hardware driver on Windows by going to the manufacturer's website and downloading the new driver; whereas in Linux you upgrade the kernel.

This means that a single Linux download & upgrade will give you the newest drivers available for your machine, whereas in Windows you would have to surf to multiple sites and download all the upgrades individually. It's a very different process, but it's certainly not a bad one. But many people complain because it's not what they're used to.

Or, as an example you're more likely to relate to, consider Firefox: One of the biggest open-source success stories. A web browser that took the world by storm. Did it achieve this success by being a perfect imitation of IE, the then-most-popular browser?

No. It was successful because it was better than IE, and it was better because it was different. It had tabbed browsing, live bookmarks, built-in searchbar, PNG support, adblock extensions, and other wonderful things. The "Find" functionality appeared in a toolbar at the bottom and looked for matches as you typed, turning red when you had no match. IE had no tabs, no RSS functionality, searchbars only via third-party extensions, and a find dialogue that required a click on "OK" to start looking and a click on "OK" to clear the "Not found" error message. A clear and inarguable demonstration of an open-source application achieving success by being better, and being better by being different. Had FF been an IE clone, it would have vanished into obscurity. And had Linux been a Windows clone, the same would have happened.

So the solution to problem #1: Remember that where Linux is familiar and the same as what you're used to, it isn't new & improved. Welcome the places where things are different, because only here does it have a chance to shine.

Problem #2: Linux is too different from Windows

The next issue arises when people do expect Linux to be different, but find that some differences are just too radical for their liking. Probably the biggest example of this is the sheer amount of choice available to Linux users. Whereas an out-of-the-box-Windows user has the Classic or XP desktop with Wordpad, Internet Explorer, and Outlook Express installed, an out-of-the-box-Linux user has hundreds of distros to choose from, then Gnome or KDE or Fluxbox or whatever, with vi or emacs or kate, Konqueror or Opera or Firefox or Mozilla, and so on and so forth.

A Windows user isn't used to making so many choices just to get up & running. Exasperated "Does there have to be so much choice?" posts are very common.

Does Linux really have to be so different from Windows? After all, they're both operating systems. They both do the same job: Power your computer & give you something to run applications on. Surely they should be more or less identical?

Look at it this way: Step outside and take a look at all the different vehicles driving along the road. These are all vehicles designed with more or less the same purpose: To get you from A to B via the roads. Note the variety in designs.

But, you may be thinking, car differences are really quite minor: they all have a steering wheel, foot-pedal controls, a gear stick, a handbrake, windows & doors, a petrol tank. . . If you can drive one car, you can drive any car!

Quite true. But did you not see that some people weren't driving cars, but were riding motorbikes instead. . ?

Switching from one version of Windows to another is like switching from one car to another. Win95 to Win98, I honestly couldn't tell the difference. Win98 to WinXP, it was a bigger change but really nothing major.

But switching from Windows to Linux is like switching from a car to a motorbike. They may both be OSes/road vehicles. They may both use the same hardware/roads. They may both provide an environment for you to run applications/transport you from A to B. But they use fundamentally different approaches to do so.

Windows/cars are not safe from viruses/theft unless you install an antivirus/lock the doors. Linux/motorbikes don't have viruses/doors, so are perfectly safe without you having to install an antivirus/lock any doors.

Or look at it the other way round:

Linux/cars were designed from the ground up for multiple users/passengers. Windows/motorbikes were designed for one user/passenger. Every Windows user/motorbike driver is used to being in full control of his computer/vehicle at all times. A Linux user/car passenger is used to only being in control of his computer/vehicle when logged in as root/sitting in the driver's seat.

Two different approaches to fulfilling the same goal. They differ in fundamental ways. They have different strengths and weaknesses: A car is the clear winner at transporting a family & a lot of cargo from A to B: More seats & more storage space. A motorbike is the clear winner at getting one person from A to B: Less affected by congestion and uses less fuel.

There are many things that don't change when you switch between cars and motorbikes: You still have to put petrol in the tank, you still have to drive on the same roads, you still have to obey the traffic lights and Stop signs, you still have to indicate before turning, you still have to obey the same speed limits.

But there are also many things that do change: Car drivers don't have to wear crash helmets, motorbike drivers don't have to put on a seatbelt. Car drivers have to turn the steering wheel to get around a corner, motorbike drivers have to lean over. Car drivers accelerate by pushing a foot-pedal, motorbike drivers accelerate by twisting a hand control.

A motorbike driver who tries to corner a car by leaning over is going to run into problems very quickly. And Windows users who try to use their existing skills and habits generally also find themselves having many issues. In fact, Windows "Power Users" frequently have more problems with Linux than people with little or no computer experience, for this very reason. Typically, the most vehement "Linux is not ready for the desktop yet" arguments come from ingrained Windows users who reason that if they couldn't make the switch, a less-experienced user has no chance. But this is the exact opposite of the truth.

So, to avoid problem #2: Don't assume that being a knowledgeable Windows user means you're a knowledgeable Linux user: When you first start with Linux, you are a novice.

Problem #3: Culture shock

Subproblem #3a: There is a culture

Windows users are more or less in a customer-supplier relationship: They pay for software, for warranties, for support, and so on. They expect software to have a certain level of usability. They are therefore used to having rights with their software: They have paid for technical support and have every right to demand that they receive it. They are also used to dealing with entities rather than people: Their contracts are with a company, not with a person.

Linux users are in more of a community. They don't have to buy the software, they don't have to pay for technical support. They download software for free & use Instant Messaging and web-based forums to get help. They deal with people, not corporations.

A Windows user will not endear himself by bringing his habitual attitudes over to Linux, to put it mildly.

The biggest cause of friction tends to be in the online interactions: A "3a" user new to Linux asks for help with a problem he's having. When he doesn't get that help at what he considers an acceptable rate, he starts complaining and demanding more help. Because that's what he's used to doing with paid-for tech support. The problem is that this isn't paid-for support. This is a bunch of volunteers who are willing to help people with problems out of the goodness of their hearts. The new user has no right to demand anything from them, any more than somebody collecting for charity can demand larger donations from contributors.

In much the same way, a Windows user is used to using commercial software. Companies don't release software until it's reliable, functional, and user-friendly enough. So this is what a Windows user tends to expect from software: It starts at version 1.0. Linux software, however, tends to get released almost as soon as it's written: It starts at version 0.1. This way, people who really need the functionality can get it ASAP; interested developers can get involved in helping improve the code; and the community as a whole stays aware of what's going on.

If a "3a" user runs into trouble with Linux, he'll complain: The software hasn't met his standards, and he thinks he has a right to expect that standard. His mood won't be improved when he gets sarcastic replies like "I'd demand a refund if I were you"

So, to avoid problem #3a: Simply remember that you haven't paid the developer who wrote the software or the people online who provide the tech support. They don't owe you anything.

Subproblem #3b: New vs. Old

Linux pretty much started out life as a hacker's hobby. It grew as it attracted more hobbyist hackers. It was quite some time before anybody but a geek stood a chance of getting a useable Linux installation working easily. Linux started out "By geeks, for geeks." And even today, the majority of established Linux users are self-confessed geeks.

And that's a pretty good thing: If you've got a problem with hardware or software, having a large number of geeks available to work on the solution is a definite plus.

But Linux has grown up quite a bit since its early days. There are distros that almost anybody can install, even distros that live on CDs and detect all your hardware for you without any intervention. It's become attractive to non-hobbyist users who are just interested in it because it's virus-free and cheap to upgrade. It's not uncommon for there to be friction between the two camps. It's important to bear in mind, however, that there's no real malice on either side: It's lack of understanding that causes the problems.

Firstly, you get the hard-core geeks who still assume that everybody using Linux is a fellow geek. This means they expect a high level of knowledge, and often leads to accusations of arrogance, elitism, and rudeness. And in truth, sometimes that's what it is. But quite often, it's not: It's elitist to say "Everybody ought to know this". It's not elitist to say "Everybody knows this" - quite the opposite.

Secondly, you get the new users who're trying to make the switch after a lifetime of using commercial OSes. These users are used to software that anybody can sit down & use, out-of-the-box.

The issues arise because group 1 is made up of people who enjoy being able to tear their OS apart and rebuild it the way they like it, while group 2 tends to be indifferent to the way the OS works, so long as it does work.

A parallel situation that can emphasize the problems is Lego. Picture the following:

New: I wanted a new toy car, and everybody's raving about how great Lego cars can be. So I bought some Lego, but when I got home, I just had a load of bricks and cogs and stuff in the box. Where's my car??

Old: You have to build the car out of the bricks. That's the whole point of Lego.

New: What?? I don't know how to build a car. I'm not a mechanic. How am I supposed to know how to put it all together??

Old: There's a leaflet that came in the box. It tells you exactly how to put the bricks together to get a toy car. You don't need to know how, you just need to follow the instructions.

New: Okay, I found the instructions. It's going to take me hours! Why can't they just sell it as a toy car, instead of making you have to build it??

Old: Because not everybody wants to make a toy car with Lego. It can be made into anything we like. That's the whole point.

New: I still don't see why they can't supply it as a car so people who want a car have got one, and other people can take it apart if they want to. Anyway, I finally got it put together, but some bits come off occasionally. What do I do about this? Can I glue it?

Old: It's Lego. It's designed to come apart. That's the whole point.

New: But I don't want it to come apart. I just want a toy car!

Old: Then why on Earth did you buy a box of Lego??

It's clear to just about anybody that Lego is not really aimed at people who just want a toy car. You don't get conversations like the above in real life. The whole point of Lego is that you have fun building it and you can make anything you like with it. If you've no interest in building anything, Lego's not for you. This is quite obvious.

As far as the long-time Linux user is concerned, the same holds true for Linux: It's an open-source, fully-customizeable set of software. That's the whole point. If you don't want to hack the components a bit, why bother to use it?

But there's been a lot of effort lately to make Linux more suitable for the non-hackers, a situation that's not a million miles away from selling pre-assembled Lego kits, in order to make it appeal to a wider audience. Hence you get conversations that aren't far away from the ones above: Newcomers complain about the existence of what the established users consider to be fundamental features, and resent having the read a manual to get something working.  But complaining that there are too many distros; or that software has too many configuration options; or that it doesn't work perfectly out-of-the-box; is like complaining that Lego can be made into too many models, and not liking the fact that it can be broken down into bricks and built into many other things.

So, to avoid problem #3b: Just remember that what Linux seems to be now is not what Linux was in the past. The largest and most necessary part of the Linux community, the hackers and the developers, like Linux because they can fit it together the way they like; they don't like it in spite of having to do all the assembly before they can use it.

Problem #4: Designed for the designer

In the car industry, you'll very rarely find that the person who designed the engine also designed the car interior: It calls for totally different skills. Nobody wants an engine that only looks like it can go fast, and nobody wants an interior that works superbly but is cramped and ugly. And in the same way, in the software industry, the user interface (UI) is not usually created by the people who wrote the software.

In the Linux world, however, this is not so much the case: Projects frequently start out as one man's toy. He does everything himself, and therefore the interface has no need of any kind of "user friendly" features: The user knows everything there is to know about the software, he doesn't need help. Vi is a good example of software deliberately created for a user who already knows how it works: It's not unheard of for new users to reboot their computers because they couldn't figure out how else to get out of vi.

However, there is an important difference between a FOSS programmer and most commercial software writers: The software a FOSS programmer creates is software that he intends to use. So whilst the end result might not be as 'comfortable' for the novice user, they can draw some comfort in knowing that the software is designed by somebody who knows what the end-users needs are: He too is an end-user. This is very different from commercial software writers, who are making software for other people to use: They are not knowledgeable end-users.

So whilst vi has an interface that is hideously unfriendly to new users, it is still in use today because it is such a superb interface once you know how it works. Firefox was created by people who regularly browse the Web. The Gimp was built by people who use it to manipulate graphics files. And so on.

So Linux interfaces are frequently a bit of a minefield for the novice: Despite its popularity, vi should never be considered by a new user who just wants to quickly make a few changes to a file. And if you're using software early in its lifecycle, a polished, user-friendly interface is something you're likely to find only in the "ToDo" list: Functionality comes first. Nobody designs a killer interface and then tries to add functionality bit by bit. They create functionality, and then improve the interface bit by bit.

So to avoid #4 issues: Look for software that's specifically aimed at being easy for new users to use, or accept that some software that has a steeper learning curve than you're used to. To complain that vi isn't friendly enough for new users is to be laughed at for missing the point.

Problem #5: The myth of "user-friendly"

This is a big one. It's a very big term in the computing world, "user-friendly". It's even the name of a particularly good webcomic. But it's a bad term.

The basic concept is good: That software be designed with the needs of the user in mind. But it's always addressed as a single concept, which it isn't.

If you spend your entire life processing text files, your ideal software will be fast and powerful, enabling you to do the maximum amount of work for the minimum amount of effort. Simple keyboard shortcuts and mouseless operation will be of vital importance.

But if you very rarely edit text files, and you just want to write an occasional letter, the last thing you want is to struggle with learning keyboard shortcuts. Well-organized menus and clear icons in toolbars will be your ideal.

Clearly, software designed around the needs of the first user will not be suitable for the second, and vice versa. So how can any software be called "user-friendly", if we all have different needs?

The simple answer: User-friendly is a misnomer, and one that makes a complex situation seem simple.

What does "user-friendly" really mean? Well, in the context in which it is used, "user friendly" software means "Software that can be used to a reasonable level of competence by a user with no previous experience of the software." This has the unfortunate effect of making lousy-but-familiar interfaces fall into the category of "user-friendly".

Subproblem #5a: Familiar is friendly

So it is that in most "user-friendly" text editors & word processors, you Cut and Paste by using Ctrl-X and Ctrl-V. Totally unintuitive, but everybody's used to these combinations, so they count as a "friendly" combination.

So when somebody comes to vi and finds that it's "d" to cut, and "p" to paste, it's not considered friendly: It's not what anybody is used to.

Is it superior? Well, actually, yes.

With the Ctrl-X approach, how do you cut a word from the document you're currently in? (No using the mouse!)

From the start of the word, Ctrl-Shift-Right to select the word.
Then Ctrl-X to cut it.

The vi approach? dw deletes the word.

How about cutting five words with a Ctrl-X application?

From the start of the words, Ctrl-Shift-Right
Ctrl-Shift-Right
Ctrl-Shift-Right
Ctrl-Shift-Right
Ctrl-Shift-Right
Ctrl-X

And with vi?

d5w

The vi approach is far more versatile and actually more intuitive: "X" and "V" are not obvious or memorable "Cut" and "Paste" commands, whereas "dw" to delete a word, and "p" to put it back is perfectly straightforward. But "X" and "V" are what we all know, so whilst vi is clearly superior, it's unfamiliar. Ergo, it is considered unfriendly. On no other basis, pure familiarity makes a Windows-like interface seem friendly. And as we learned in problem #1, Linux is necessarily different to Windows. Inescapably, Linux always appears less "user-friendly" than Windows.

To avoid #5a problems, all you can really do is try and remember that "user-friendly" doesn't mean "What I'm used to": Try doing things your usual way, and if it doesn't work, try and work out what a total novice would do.

Subproblem #5b: Inefficient is friendly

This is a sad but inescapable fact. Paradoxically, the harder you make it to access an application's functionality, the friendlier it can seem to be.

This is because friendliness is added to an interface by using simple, visible 'clues' - the more, the better. After all, if a complete novice to computers is put in front of a WYSIWYG word processor and asked to make a bit of text bold, which is more likely:

  • He'll guess that "Ctrl-B" is the usual standard
  • He'll look for clues, and try clicking on the "Edit" menu. Unsuccessful, he'll try the next likely one along the row of menus: "Format". The new menu has a "Font" option, which seems promising. And Hey! There's our "Bold" option. Success!

Next time you do any processing, try doing every job via the menus: No shortcut keys, and no toolbar icons. Menus all the way. You'll find you slow to a crawl, as every task suddenly demands a multitude of keystrokes/mouseclicks.

Making software "user-friendly" in this fashion is like putting training wheels on a bicycle: It lets you get up & running immediately, without any skill or experience needed. It's perfect for a beginner. But nobody out there thinks that all bicycles should be sold with training wheels: If you were given such a bicycle today, I'll wager the first thing you'd do is remove them for being unnecessary encumbrances: Once you know how to ride a bike, training wheels are unnecessary.

And in the same way, a great deal of Linux software is designed without "training wheels" - it's designed for users who already have some basic skills in place. After all, nobody's a permanent novice: Ignorance is short-lived, and knowledge is forever. So the software is designed with the majority in mind.

This might seem an excuse: After all, MS Word has all the friendly menus, and it has toolbar buttons, and it has shortcut keys. . . Best of all worlds, surely? Friendly and efficient.

However, this has to be put into perspective: Firstly, the practicalities: having menus and toolbars and shortcuts and all would mean a lot of coding, and it's not like Linux developers all get paid for their time. Secondly, it still doesn't really take into account serious power-users: Very few professional wordsmiths use MS Word. Ever meet a coder who used MS Word? Compare that to how many use emacs & vi.

Why is this? Firstly, because some "friendly" behaviour rules out efficient behaviour: See the "Cut&Copy" example above. And secondly, because most of Word's functionality is buried in menus that you have to use: Only the most common functionality has those handy little buttons in toolbars at the top. The less-used functions that are still vital for serious users just take too long to access.

Something to bear in mind, however, is that "training wheels" are often available as "optional extras" for Linux software: They might not be obvious, but frequently they're available.

Take mplayer. You use it to play a video file by typing mplayer filename in a terminal. You fastforward & rewind using the arrow keys and the PageUp & PageDown keys. This is not overly "user-friendly". However, if you instead type gmplayer filename, you'll get the graphical frontend, with all its nice, friendly , familiar buttons.

Take ripping a CD to MP3 (or Ogg): Using the command-line, you need to use cdparanoia to rip the files to disc. Then you need an encoder. . . It's a hassle, even if you know exactly how to use the packages (imho). So download & install something like Grip. This is an easy-to-use graphical frontend that uses cdparanoia and encoders behind-the-scenes to make it really easy to rip CDs, and even has CDDB support to name the files automatically for you.

The same goes for ripping DVDs: The number of options to pass to transcode is a bit of a nightmare. But using dvd::rip to talk to transcode for you makes the whole thing a simple, GUI-based process which anybody can do.

So to avoid #5b issues: Remember that "training wheels" tend to be bolt-on extras in Linux, rather than being automatically supplied with the main product. And sometimes, "training wheels" just can't be part of the design.

Problem #6: Imitation vs. Convergence

An argument people often make when they find that Linux isn't the Windows clone they wanted is to insist that this is what Linux has been (or should have been) attempting to be since it was created, and that people who don't recognise this and help to make Linux more Windows-like are in the wrong. They draw on many arguments for this:

Linux has gone from Command-Line- to Graphics-based interfaces, a clear attempt to copy Windows

Nice theory, but false: The original X windowing system was released in 1984, as the successor to the W windowing system ported to Unix in 1983. Windows 1.0 was released in 1985. Windows didn't really make it big until version 3, released in 1990 - by which time, X windows had for years been at the X11 stage we use today. Linux itself was only started in 1991. So Linux didn't create a GUI to copy Windows: It simply made use of a GUI that existed long before Windows.

Windows 3 gave way to Windows 95 - making a huge level of changes to the UI that Microsoft has never equalled since. It had many new & innovative features: Drag & drop functionality; taskbars, and so on. All of which have since been copied by Linux, of course.

Actually. . . no. All the above existed prior to Microsoft making use of them. NeXTSTeP in particular was a hugely advanced (for the time) GUI, and it predated Win95 significantly - version 1 released in 1989, and the final version in 1995.

Okay, okay, so Microsoft didn't think up the individual features that we think of as the Windows Look-and-Feel. But it still created a Look-and-Feel, and Linux has been trying to imitate that ever since.

To debunk this, one must discuss the concept of convergent evolution. This is where two completely different and independent systems evolve over time to become very similar. It happens all the time in biology. For example, sharks and dolphins. Both are (typically) fish-eating marine organisms of about the same size. Both have dorsal fins, pectoral fins, tail fins, and similar, streamlined shapes.

However, sharks evolved from fish, while dolphins evolved from a land-based quadrupedal mammal of some sort. The reason they have very similar overall appearances is that they both evolved to be as efficient as possible at living within a marine environment. At no stage did pre-dolphins (the relative newcomers) look at sharks and think "Wow, look at those fins. They work really well. I'll try and evolve some myself!"

Similarly, it's perfectly true to look at early Linux desktops and see FVWM and TWM and a lot of other simplistic GUIs. And then look at modern Linux desktops, and see Gnome & KDE with their taskbars and menus and eye-candy. And yes, it's true to say that they're a lot more like Windows than they used to be.

But then, so is Windows: Windows 3.0 had no taskbar that I remember. And the Start menu? What Start menu?

Linux didn't have a desktop anything like modern Windows. Microsoft didn't either. Now they both do. What does this tell us?

It tells us that developers in both camps looked for ways of improving the GUI, and because there are only a limited number of solutions to a problem, they often used very similar methods. Similarity does not in any way prove or imply imitation. Remembering that will help you avoid straying into problem #6 territory.

Problem #7: That FOSS thing.

Oh, this causes problems. Not intrinsically: The software being free and open-source is a wonderful and immensely important part of the whole thing. But understanding just how different FOSS is from proprietary software can be too big an adjustment for some people to make.

I've already mentioned some instances of this: People thinking they can demand technical support and the like. But it goes far beyond that.

Microsoft's Mission Statement is "A computer on every desktop" - with the unspoken rider that each computer should be running Windows. Microsoft and Apple both sell operating systems, and both do their utmost to make sure their products get used by the largest number of people: They're businesses, out to make money.

And then there is FOSS. Which, even today, is almost entirely non-commercial.

Before you reach for your email client to tell me about Red Hat, Suse, Linspire and all: Yes, I know they "sell" Linux. I know they'd all love Linux to be adopted universally, especially their own flavour of it. But don't confuse the suppliers with the manufacturers. The Linux kernel was not created by a company, and is not maintained by people out to make a profit with it. The GNU tools were not created by a company, and are not maintained by people out to make a profit with them. The X11 windowing system. . . well, the most popular implementation is xorg right now, and the ".org" part should tell you all you need to know. Desktop software: Well, you might be able to make a case for KDE being commercial, since it's Qt-based. But Gnome, Fluxbox, Enlightenment, etc. are all non-profit. There are people out to sell Linux, but they are very much the minority.

Increasing the number of end-users of proprietary software leads to a direct financial benefit to the company that makes it. This is simply not the case for FOSS: There is no direct benefit to any FOSS developer in increasing the userbase. Indirect benefits, yes: Personal pride; an increased potential for finding bugs; more likelihood of attracting new developers; possibly a chance of a good job offer; and so on.

But Linus Torvalds doesn't make money from increased Linux usage. Richard Stallman doesn't get money from increased GNU usage. All those servers running OpenBSD and OpenSSH don't put a penny into the OpenBSD project's pockets. And so we come to the biggest problem of all when it comes to new users and Linux:

They find out they're not wanted.

New users come to Linux after spending their lives using an OS where the end-user's needs are paramount, and "user friendly" and "customer focus" are considered veritable Holy Grails. And they suddenly find themselves using an OS that still relies on 'man' files, the command-line, hand-edited configuration files, and Google. And when they complain, they don't get coddled or promised better things: They get bluntly shown the door.

That's an exaggeration, of course. But it is how a lot of potential Linux converts perceived things when they tried and failed to make the switch.

In an odd way, FOSS is actually a very selfish development method: People only work on what they want to work on, when they want to work on it. Most people don't see any need to make Linux more attractive to inexperienced end-users: It already does what they want it to do, why should they care if it doesn't work for other people?

FOSS has many parallels with the Internet itself: You don't pay the writer of a webpage/the software to download and read/install it. Ubiquitous broadband/User-friendly interfaces are of no great interest to somebody who already has broadband/knows how to use the software. Bloggers/developers don't need to have lots of readers/users to justify blogging/coding. There are lots of people making lots of money off it, but it's not by the old-fashioned "I own this and you have to pay me if you want some of it" method that most businesses are so enamoured of; it's by providing services like tech-support/e-commerce.

Linux is not interested in market share. Linux does not have customers. Linux does not have shareholders, or a responsibility to the bottom line. Linux was not created to make money. Linux does not have the goal of being the most popular and widespread OS on the planet.

All the Linux community wants is to create a really good, fully-featured, free operating system. If that results in Linux becoming a hugely popular OS, then that's great. If that results in Linux having the most intuitive, user-friendly interface ever created, then that's great. If that results in Linux becoming the basis of a multi-billion dollar industry, then that's great.

It's great, but it's not the point. The point is to make Linux the best OS that the community is capable of making. Not for other people: For itself. The oh-so-common threats of "Linux will never take over the desktop unless it does such-and-such" are simply irrelevant: The Linux community isn't trying to take over the desktop. They really don't care if it gets good enough to make it onto your desktop, so long as it stays good enough to remain on theirs. The highly-vocal MS-haters, pro-Linux zealots, and money-making FOSS purveyors might be loud, but they're still minorities.

That's what the Linux community wants: an OS that can be installed by whoever really wants it. So if you're considering switching to Linux, first ask yourself what you really want.

If you want an OS that doesn't chauffeur you around, but hands you the keys, puts you in the driver's seat, and expects you to know what to do: Get Linux. You'll have to devote some time to learning how to use it, but once you've done so, you'll have an OS that you can make sit up and dance.

If you really just want Windows without the malware and security issues: Read up on good security practices; install a good firewall, malware-detector, and anti-virus; replace IE with a more secure browser; and keep yourself up-to-date with security updates. There are people out there (myself included) who've used Windows since 3.1 days right through to XP without ever being infected with a virus or malware: you can do it too. Don't get Linux: It will fail miserably at being what you want it to be.

If you really want the security and performance of a Unix-based OS but with a customer-focussed attitude and an world-renowned interface: Buy an Apple Mac. OS X is great. But don't get Linux: It will not do what you want it to do.

It's not just about "Why should I want Linux?". It's also about "Why should Linux want me?"


If you want to leave any feedback about this article, comment on my blog.

This work is copyright 24/05/06 and belongs to Dominic Humphries. It may be redistributed under a Creative Commons License: The URL http://linux.oneandoneis2.org/LNW.htm must supplied in attribution.

英文版出处 http://linux.oneandoneis2.org/LNW.htm

fedora 12,13,14,15,16/centOS/redhat EL 使用第三方yum 源rpmfusion.org

以下内容来源于rpmfusion.org官方网站的使用说明

通过命令行注册并启用rpmfusion.org yum 源/Command Line Setup using rpm

To enable access to both the free and the nonfree repository use the following command:

  • Fedora 12 and 13 and 14 and 15:
    su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'
  • Fedora Rawhide and what will become Fedora 16 (Alpha, Beta and snapshots):
    su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-rawhide.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-rawhide.noarch.rpm'
  • RHEL5 or compatible like CentOS:
    su -c 'rpm -Uvh http://download1.rpmfusion.org/free/el/updates/testing/5/i386/rpmfusion-free-release-5-0.1.noarch.rpm http://download1.rpmfusion.org/nonfree/el/updates/testing/5/i386/rpmfusion-nonfree-release-5-0.1.noarch.rpm'

官方网站的说明上好像还有使用浏览器安装rpm源的,没有试过,还是习惯使用命令行操作,毕竟命令行才是根本。

http://rpmfusion.org/Configuration

rpmfusion.org yum 源简介

RPM Fusion 是为 Fedora 及 Red Hat Enterprise Linux 用户提供的一个软件包仓库。各位 Fedora/RHEL /centOS朋友要是想要安装的软件在官方的仓库中找不到,不要泄气,兴许通过 RPM Fusion 你就找到了。

新启动的 RPM Fusion 合并了原有的 Dribble、Freshrpms、Livna 等软件包仓库,将成为最大的第三方软件包仓库。

通过 RPM Fusion 软件包仓库,你将找到 ATI/NVIDIA 显卡驱动、私有的音频/视频编码/解码器、游戏、模拟器、以及其他软件包等。

wine个人目录下菜单项Programs位置/wine菜单项腾讯软件QQ2010删除卸载

fodora13,gnome桌面,只因为无聊测试之用,运行QQ2010的安装程序,安装向导基本正常运行运行,但无法正常使用,所以卸载,但运行卸载后,主菜单里还有wine菜单项,里有Programs子菜单,里面还有“腾讯软件-QQ2010”,再运行里里面的卸载,还是一样,这个菜单项并不能自动删除。

于是自己找一样,这个菜单项具体在哪个目录里的哪个文件。

新建一个账号,登录后,主菜单里没有wine一项,所以基本上可以认定,这个菜单项在用户目录里。

锁定在用户家目录里找,这种配置型的文件一般都会在隐藏目录里,那就在家目录里运行 ls -a , 里面有.local目录,终于在这个目录里找了这个菜单项

.local/share/applications/wine/Programs

下面要做的就很简单了,不必多说。

Linux 下用户home目录下文件夹名字修改Desktop,Documents,Downloads,Pictures等

核心:vi ~/.config/user-dirs.dirs 编辑这个文件,文件格式很简单,一看就明白了

使用fedora linux,用户home家目录下缺省情况下可能会有以下几个目录,

Desktop    Downloads  Music  Pictures    Videos  Documents  Maps    Public    Templates

使用图形界面时,如需要选中一下文件夹,习惯上打该文件夹名字的第一个字母(如有多个同首字母目录时,再打第二个字母),这样可以很方便的快速定位,多数文件管理器都有这样功能,使用非常方便,但home目录下的几个缺省文件夹名字是大写开头的,小写输入法下打第一个字母,并不能定位;linux对文件名的大小写敏感。按shift+相应的字母,总是不方便,要同时按下shif键。

于是想,是否可以把这几个文件夹的名字改一下,首字母改成小写,这样就会方便得多。当然,直接把文件夹名字改掉,大写开头的文件夹还会被创建,也就是说,默认情况下,linux(其实应该是gnome的文件管理程序)并不认可小写的文件名。linux是可以无限定制的,家目录下文件名这一点,一定也会在某个地方有配置文件,而且应该是点号(.)开头的隐藏文件。但具体位置并不知道,没有到网上搜索相关资料,想根据自己猜测分析找到它;这样可以锻炼加深对linux的理解,也比较有成就感。

分析:这样的配置文件,应该是分别在每个用户的家目录下,这样方便每个用户自己定义这些文件名。因为在修改默认语言时(如从中文修改为英文,或相反),linux会询问是否更新家目录下的这些目录名。

于是查看家目录下的隐藏文件,

[feng@fsc ~]$ ls -al
总用量 86844
drwx------. 67 feng feng     4096  9月  5 15:00 .
drwxr-xr-x.  4 root root     4096  8月  4 01:30 ..
drwx------.  3 feng feng     4096  8月  6 23:34 .adobe
drwx------.  8 feng feng     4096  8月 28 23:10 .amsn
drwx------.  2 feng feng     4096  8月 21 21:13 amsn_received
drwxrwxr-x.  4 feng feng     4096  8月 22 00:42 .audacity-data
-rw-------.  1 feng feng     2074  9月  5 01:22 .bash_history
-rw-r--r--.  1 feng feng       18  3月 31 20:14 .bash_logout
-rw-r--r--.  1 feng feng      176  3月 31 20:14 .bash_profile
-rw-r--r--.  1 feng feng      124  3月 31 20:14 .bashrc
drwx------.  7 feng feng     4096  9月  5 14:53 .beagle
drwxrwxr-x.  2 feng feng     4096  8月 21 22:53 .BloGTK
-rw-rw-r--.  1 feng feng     4096  8月 23 22:37 brasero-session.log
drwx------.  8 feng feng     4096  8月 29 14:24 .cache
drwxrwxr-x.  3 feng feng     4096  8月  5 22:13 .color
drwxr-xr-x. 22 feng feng     4096  9月  5 14:55 .config
drwx------.  3 feng feng     4096  8月  4 01:31 .dbus
drwxrwx---.  3 feng feng     4096  8月 22 00:42 .denemo
drwxr-xr-x.  2 feng feng     4096  9月  5 15:00 Desktop
......................
-rw-r--r--.  1 feng feng      188  8月 29 22:56 .yumex.conf

文件很多,很多软件都有一个相应的隐藏文件,作为当前用户的配置文件。注意到其中有一个下.config目录

drwxr-xr-x. 22 feng feng     4096  9月  5 14:55 .config

很可能在这里,进去看看

[feng@fsc ~]$ cd .config/
[feng@fsc .config]$ ll
总用量 96
drwxrwxr-x. 2 feng feng 4096  8月 29 09:18 akonadi
drwxrwxr-x. 5 feng feng 4096  8月 28 09:11 awn
drwx------. 2 feng feng 4096  8月 23 22:41 brasero
drwx------. 2 feng feng 4096  8月  7 11:31 Empathy
drwx------. 2 feng feng 4096  8月 15 15:08 enchant
drwx------. 5 feng feng 4096  8月 29 11:22 geany
drwx------. 2 feng feng 4096  8月 29 22:53 glista
drwxr-xr-x. 3 feng feng 4096  8月  4 01:31 gnome-disk-utility
drwxr-xr-x. 3 feng feng 4096  8月  4 01:31 gnome-session
drwxrwxr-x. 4 feng feng 4096  8月  4 01:31 gnote
drwxrwxr-x. 2 feng feng 4096  8月 21 22:23 Google
drwx------. 2 feng feng 4096  9月  5 00:02 gtk-2.0
drwx------. 3 feng feng 4096  8月  4 01:31 ibus
drwxrwxr-x. 2 feng feng 4096  8月 29 23:07 InSilmaril
drwxrwxr-x. 3 feng feng 4096  9月  3 23:03 menus
drwxrwxr-x. 2 feng feng 4096  8月 15 15:08 pino
drwxrwxr-x. 4 feng feng 4096  9月  5 12:49 smplayer
drwx------. 2 feng feng 4096  8月 29 00:42 Thunar
drwxr-xr-x. 6 feng feng 4096  8月 29 13:52 transmission
-rw-rw-r--. 1 feng feng 8561  8月 29 23:09 Trolltech.conf
-rw-------. 1 feng feng  632  8月 15 15:44 user-dirs.dirs
drwxrwxr-x. 2 feng feng 4096  8月 22 01:57 zim

注意到其中的 user-dirs.dirs文件,从文件名字是判断,很可能就是它,打开看看

vi user-dirs.dirs

-----------------------------------------------------------------------------------------------

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"
~
~
~
~
~
~
~
~
"user-dirs.dirs" 15L, 632C                                          12,1         全部

第一行写明:xdg-user-dirs-update创建修改的这个文件,修改一下试试,把下面的大写目录名改成小写的。

然后把home家目录下的几个大写首字母的目录改名,当然改成小写首字母的。

[feng@fsc ~]$ mv Documents/ documents
[feng@fsc ~]$ mv Downloads/ downloads
[feng@fsc ~]$ mv Maps maps
[feng@fsc ~]$ mv Music music
[feng@fsc ~]$ mv Templates/ tempates
[feng@fsc ~]$ mv Videos/ videos
......

然后用firefox下载个东西试试,看默认保存位置是否是到downloads里面了

一次简单的探索,志之于此

Solaris、Linux和FreeBSD的内核比较

1。我个人认为作者MAX对Linux的了解不像他对Solaris那样深入,我不知道也没法知道他的下列关于Linux的内容来自自己的代码阅读分析还是只是来自第三方的文档资料而未经自己实地验证;
2。我已经尽量符合原意地翻译了,当然中间实在忍不住的地方也插两句自己的话;
3。无论是只阅读这一篇文章,还是看其他东西,我都觉得,保持自己头脑清醒很重要;
4。谢谢

Max Bruning 是一名教师/资讯专家,他的教授内容包括Solaris内部组织,设备驱动,内核和应用的crash分析及调试,网络组织和其他一些特定科目(他的 blog在blogspot,不费点劲可能访问不了,所以也可以看看www.bruningsystems.com)。

在解释这些子系统在Solaris中是如何实现的时候,他的学生们总会问“Linux里它是怎么工作的?”或者“FreeBSD里是这 样,Solaris里呢?”这种经历最终让Max在OpenSolaris网站写了这篇A Comparison of Solaris, Linux, and FreeBSD Kernels。

文章里讨论了调度,内存管理和文件系统架构--这3个子系统在任何操作系统中都有普遍应用,而且他们是最well-understood 的组件。

目前很多分析或对比文章所引用的材料及代码都比较老,与现实脱节,Max推荐如下几个多少比较up to date的网站:

Solaris Vs. Linux
Comparing MySQL Performance
Fast Track to Solaris 10 Adoption
Solaris 10 Heads for Linux Territory

其实抛开3个系统之间的差别,他们也有很多相似之处。除了那些不同的命名习惯,这些OS在实现不同概念的时候采用了非常相似的方法。他们都支持 线程的分时调度,支持最近未使用页面替换算法实现请求调页,支持虚拟文件系统层允许不同文件系统架构。这个系统里的一个好概念在另一个系统里也会采用。比 如Linux也接受并实现了 Solaris slab 内存分配算法的概念。FreeBSD 代码里的很多术语在Solaris里也出现了(快去看看代码。。。)。考虑到这3个系统的源代码都能得到了, fxr.watson.org提供了系统源码的交叉阅读浏览,可能会发现很多有趣的地方。

好了,温情默默的套近乎结束,进入正题。

调度和调度器

Solaris的调度单位是kthread_t,FreeBSd是thread,Linux是task_struct。抬高一级,Solaris的进程是proc_t,当然每个进程里的线程就是kthread_t;Linux的进程和线程都由task_struct 表示,单线程的进程在Linux里是一个task_struct。单线程的进程在Solaris里有一个proc_t,一个kthread_t,还有一个klwp_t表示。klwp_t提供了用户和内核模式线程切换的存储区。FreeBSD里的单线程进程有一个proc ,一个thread 和一个ksegrp 。ksegrp 是“内核调度的实体组kernel scheduling entity group”。三个系统的线程表示结构不同,不过都支持调度线程。

和大家熟悉的基本一样,调度是基于优先级的。小小的数学问题是,在Linux和FreeBSD里,数字越小,优先级越高;而SUN的宝贝却喜欢数字越大,优先级越高。参考下表

三个系统都更推崇interactive 线程/进程(下面会提到interactive怎么回事)。Interactive 线程比compute-bound 线程优先级要高,不过得到的时间片要少一些。Solaris,FreeBSD和Linux都使用每CPU的“运行队列 runqueue”。FreeBSD和Linux有一个active队列和一个expired队列。名字说得很清楚了--系统从active上按照优先级 选择线程进行调度。用完自己时间片的线程就从active搬到expired上(或者为了避免“饿死”的其他情况),active空以后,内核交换 active和expired。FreeBSD还多一个idle 队列--其他两个queue都空的时候才轮到这个。Solaris的概念是每CPU“调度队列 dispatch queue”。线程用完时间片后,内核给其一个新优先级然后放回调度队列。所有3个系统的runqueue,对不同优先级的可运行线程都分别有链表。

FreeBSD四个优先级共享一个链表,Solaris和Linux则每个优先级一个链表Linux和FreeBSD结合运行时间和睡眠时间计 算线程的interactive-ness,Solaris查表。他们都不支持“gang scheduling”(有兴趣查Google即知,并行计算上的调度算法,大白话说就是一组任务一把disptach到各个CPU上。劳伦斯.利弗莫尔 那帮造原子弹的家伙最喜欢了,他们有世界上最昂贵的玩具,可以理解)每个OS都调度下一个线程而不是N个线程开始运行。这3个OS都有利用 CACHE(warm affinity)和负载均衡的机制。对超线程CPU,FreeBSD能尽量将多个线程保持在一个CPU节点上(当然可能是不同的CPU超线程上)。 Solaris也有类似机制,不过是在用户和应用的控制下,而且并不限于CPU的超线程,他们的术语是processor sets,FreeBSD的叫法是processor groups和其他2个OS最大的不同是,Solaris同时支持多个“scheduling classes”。3个OS都支持POSIX的SCHED_FIFO,SCHED_RR和SCHED_OTHER (或者SCHED_NORMAL)。SCHED_FIFO 和SCHED_RR通常支持实时线程(我不同意。。。但是照翻。。。)。

Solaris和Linux为支持实时线程都支持了内核抢占。Solaris支持fixed priority类,system class的是系统线程(比如换页线程),interactive的是在X控制下运行窗口环境的线程,还有一个Fair Share Scheduler 用于资源管理。具体可以参考Solaris资料。FreeBSD的调度器是在编译时决定的,Linux的调度?--要看版本了。
支持在系统中加 入新的调度类是要付出代价的。内核中每个可能决定调度的地方都得有一个间接得函数调用去call调度类相关的代码。比如,当一个线程将要sleep时,内 核调用调度类相关代码,完成该类中线程sleep需要完成工作。在Linux和FreeBSD上,调度已经完成了所有工作。不需要再来一个间接调用。额外 的层次,就意味着Solaris的调度要占用稍微多一点的系统开销--不过提供了更多的功能。

内存管理和分页

Solaris的进程地址空间由逻辑段segment组成。进程地址中的这些段可以通过pmap访 问。Solaris将其内存管理代码和数据结构分为平台无关和平台相关部分(这不跟没说一样嘛。。。)。平台相关部分位于HAT(hardware address translation)层。FreeBSD用vmspace描述进程地址空间,将其划分为逻辑块region。硬件相关部分在 pmap(physical map)模块,而vmap 例程处理硬件无关部分和数据结构。Linux使用内存描述符划分进程地址空间,逻辑单位是memory areas。Linux也由pmap来examine 进程地址空间。

Linux将机器相关层从更高层次的机器无关层中划分出来。 Solaris和FreeBSD中大多数类似代码比如page fault处理是机器无关的,而Linux处理page fault的代码则非常机器相关--从fault处理开始就是这样了。由此下来的结果是,Linux能很快地完成大多数分页相关代码--因为数据抽象更 少。不过,代价是,下层硬件的改变需要大量修改代码--Solaris和FreeBSD则分别把这样的工作堵截在HAT和pmap层搞定。

Segment,region和meory area的分割是:区域的虚拟地址segmetn/region/memory area映射的object/文件的位置权限map的大小
例如,程序的text(text段,即代码)在一个segmetn/region/memory area中,OS管理地址空间的机制是类似的,不过数据结构名字完全不同。
分页3个系统都使用了最近最少使用least recently used算法的变种完成页替换。他们都有一个守护daemon进程/线程完成页替换。FreeBSD的是vm_pageout daemon,它周期性地,或者当free的内存不多时,被唤醒。当可用内存低于某个限制时,vm_pageout 运行例程vm_pageout_scan扫描内存并释放一些页面。vm_pageout_scan例程可能需要异步地将更改过的页面写回到磁盘,在释放他们之前。不论由多少颗CPU,只有一个这样的daemon。Solaris的是pageout daemon,它也周期性地运行,处理空闲内存不多的情况。Solaris中的分页限制值在系统启动时自动校准,这样可以避免该守护进程过渡占用CPU或者向磁盘发出洪水般的换页请求(嗯,flood这么翻正好 ;P )。

FreeBSD的daemon在大多数情况下使用的值是固定的--不过也可以调整。Linux的LRU算法可以在运行时动态调整,而且可以有多个kswapd daemon,每CPU最多一个。这3个系统都使用global working set策略,而不是per process working set。FreeBSD有多个页面链表来追踪最近使用页。包括active,inactive,cached和feee页。根据使用情况,页面在这些链表 间走来走去。经常访问的页面会在active上。退出的进程的数据页面将被马上放到free上。

如果因为负载原因vm_pageout_scan 来不及扫描全部内存的话,FreeBSD内核可能将整个进程全部换出。如果内存短缺十分严重,vm_pageout_scan 可能会kill系统中最大的进程。Linux也使用不同的页面链表。物理内存被分为(多个)3重zone:一个DMA页面,一个普通页面,一个动态分配内 存页面。zone的实现很像由于x86架构限制而很产生的。页面在hot,cold和free链表间移动--机制和FreeBSD的类似。经常用的页面在 hot上。可用页面则在cold或者free上。

SUN的大佬使用free链,哈希链,vnode页面链支持自己的LRU实现。后两者大致相当于FreeBSD和Linux的 active/hot链--也是FreeBSD和Linux要扫描的链。Solaris要扫描的不是这两个对象,它用two-handed clock算法扫描全部页面(见Solaris Internals 或其他什么地方随你便)。大致方法是,两只手相隔固定举例,前面的手将page的引用位清空以作为标识,如果自此开始没有进程引用这个页,后面的手就释放这个页面(当然如果需要就写回磁盘)。

3个系统在分页时都考虑了NUMA本地性。他们都把IO buffer cache和虚拟内存页面的cache合并到一个系统页cache中。系统页cache用于读写文件已经被mmap了文件,还有应用的text段和data段。

文件系统

3个系统都使用数据抽象层向应用隐藏文件系统实现细节。就是用大家熟悉的open,close,read,write,stat, 等等系统调用访问文件,无论下层的文件数据的实现和组织如何。Solaris和FreeBSD把这种机制称为VFS(virtual file system),基本数据结构是vnode(virtual node)。Solaris和FreeBSD里每个被访问的文件都有一个赋给他们的vnode。除了generic 的文件信息外,vnode还包含到file-system-specific 信息的指针。Linux采用了详细的机制,也叫VFS(virtual file switch),文件系统无关的数据结构是inode。这个机构和vnode类似(小心:Solaris和FreeBSD也另有自己的inode--是 UFS文件系统里file-system-dependent 的数据)。Linux还有两个不同的结构,一个用于文件操作,另一个用于inode操作。Solaris和FreeBSD将他们合并为vnode操作。

VFS允许在系统里实现多种文件系统。这意味着他们相互访问对方的文件系统没问题。只要相关的文件系统例程和数据结构已经被移植到VFS上。所有这3个系统都允许文件系统堆叠stacking。下表列出了每个OS实现的文件系统类型,不是全部哈。

结论

Solaris,FreeBSD和Linux显然都在从对方身上获益。随着 Solaris的开源,这种相互促进有望更快。Max个人已经感觉到Linux的变化是最快的。新技术被快速地集成进系统,只是文档和健壮性可能有点落 后。Linux有很多--或者有时是看上去有很多--开发者。FreeBSD则大概是(从某种意义上)3个系统中历史最长的。Solaris来自BSD Unix和AT&T Bell实验室Unix的结合,使用了更多数据抽象层,因而一般说来能更简便地支持更多功能。不过,内核中大多数这样的分层都没有文档描述。可能随着代码 的开放这一点会有所改善。至于他们的差别,最大的地方之一是page fault处理了。在Solaris中,发生page fault时,代码是从平台相关的trap handler开始执行的(以大家的智商,这好像不用说了吧。。。),然后会调用generic的as_fault例 程,这个例程判断发生page fault的segment,然后调用segment driver处理page fault。segment driver调用文件系统代码,后者再调用进驱动程序,换入页面。换入完成后,segment driver 调用HAT层来更新页表项。在Linux上,发生page fault后,内核调用的代码在会马上进入平台相关部分,这些处理可能更快,不过可能不太容易扩展和移植(后半段说得太省,不知道作者有没有真的研究过 Linux下对应的处理过程)。

内核观察和调试工具对正确理解系统行为有关键意义。在这方面,Solaris有kmdb,mdb和DTrace 。在开源之前,Max就对Solaris做过多年“反向工程”--他发现解决问题的时候使用工具总比阅读代码来得快--我也知道,不过得看什么场合,大家 可不要被他误导。Linux嘛,我看作者Max不太熟,所以认为没有太多工具。对FreeBSD,他也认为只是可以用GDB调试内核的 dump--Liux也可以。

google earth linux无法运行:OpenJDK Runtime Environment (IcedTea6 1.7.1) (fedora-37.b17.fc13-i386) OpenJDK Server VM (build 14.0-b16, mixed mode)

使用fedora 13 Linux,安装google earth,安装后却无法运行,解决过程手记。

系统环境,fedora13,内核版本为 2.6.31.5-127.fc12.i686(是fedora12的内核,因为新版本内核对显示支持有问题,用新版本内核自己编译也是一样,于是用fedora12里的老版本内核了),安装时,只选择了一部分自己觉得有必要的有安装,而并没选择其它过多的软件包。

安装google earth时选择的安装位置选择为/usr/local/而不是默认的/opt/,安装后无法运行,有selinux报错,由于对selinux并不熟悉,于是修改selinux为只报告,并不阻拦。然后在命令行里运行,又看到错误消息:具体消息没有记下来,最后两行大概是这个样子:

OpenJDK Runtime Environment (IcedTea6 1.7.1) (fedora-37.b17.fc13-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)

不知道是缺少JDK包,但在“系统-管理-添加/删除软件”里搜索JDK,好几个OpenJDK相关的包都安装过了的,有几个没有装,从名字上看,感觉只是JDK“外围”包或文档之类的。以前使用fedora12安装google earth时没有遇到任何问题,但之前是安装到默认的/opt/,于是到安装目录里运行./uninstall卸载google earth,然后再安装到默认位置。

再次运行,还是一样的错误提示。于是报死马当活马医的心态,安装OpenJKD搜索出来的所有几个包(具体哪几个不记得了, e!e!),再次运行,google earth,哈,居然好了,运行正常。

于是记下来这个过程,但控制台里较早的很多内容,已经都没有了。

---------------------------------------------------------------------

[root@fsc feng]# getenforce
Enforcing
[root@fsc feng]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted
[root@fsc feng]# setenforce
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@fsc feng]# setenforce 0
[root@fsc feng]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   permissive
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted
[root@fsc feng]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   permissive
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted
[root@fsc feng]# getenforce
Permissive
[root@fsc feng]# exit
exit
[feng@fsc ~]$ googleearth

(process:3568): GLib-GObject-CRITICAL **: gtype.c:2706: You forgot to call g_type_init()

(process:3568): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed

(process:3568): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed
Google Earth has caught signal 11.

We apologize for the inconvenience, but Google Earth has crashed.
This is a bug in the program, and should never happen under normal
circumstances. A bug report and debugging data have been written
to this text file:

/home/feng/.googleearth/crashlogs/crashlog-4c6fb150.txt

Please include this file if you submit a bug report to Google.
[feng@fsc ~]$ java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.1) (fedora-37.b17.fc13-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)

[feng@fsc ~]$ jobs
[feng@fsc ~]$ fobs
命令没有找到
[feng@fsc ~]$ jobs
[feng@fsc ~]$ googleearth

(process:3660): GLib-GObject-CRITICAL **: gtype.c:2706: You forgot to call g_type_init()

(process:3660): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed

(process:3660): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed
Google Earth has caught signal 11.

We apologize for the inconvenience, but Google Earth has crashed.
This is a bug in the program, and should never happen under normal
circumstances. A bug report and debugging data have been written
to this text file:

/home/feng/.googleearth/crashlogs/crashlog-4c6fb1d1.txt

Please include this file if you submit a bug report to Google.
[feng@fsc ~]$ java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.1) (fedora-37.b17.fc13-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)

[feng@fsc ~]$ su
密码:
[root@fsc feng]# pwd
/home/feng
[root@fsc feng]# cd Downloads/
[root@fsc Downloads]# ll
总用量 57824
drwxrwxr-x. 5 feng feng     4096  8月 15 16:02 1634b5f42ec7dff29638227bd15edb9d
-rw-rw-r--. 1 feng feng   829116  8月 15 15:48 1634b5f42ec7dff29638227bd15edb9d.rar
-rw-rw-r--. 1 feng feng   752024  8月 16 22:11 2004122913334251606.rm
-rw-rw-r--. 1 feng feng   180088  8月 16 22:11 734.mp3
-rw-rw-r--. 1 feng feng     7826  8月 10 22:04 GoogleBookmarks.html
-rwxr-xr-x. 1 feng feng 31399370  8月 21 18:24 GoogleEarthLinux.bin
-rw-rw-r--. 1 feng feng  1424887  8月 15 15:30 hanzhongren.rar
-rw-rw-r--. 1 feng feng 14754987  8月 21 17:26 opera-10.61-6430.i386.rpm
-rw-rw-r--. 1 feng feng   833828  8月 15 15:32 rarlinux-3.9.3.tar.gz
-rw-rw-r--. 1 feng feng  8887395  8月 15 15:47 风格安装录像.rar
[root@fsc Downloads]# ./GoogleEarthLinux.bin
Verifying archive integrity... All good.
Uncompressing Google Earth for GNU/Linux 5.2.1.1547..............................................................
loki_setup: Suspect size value for option option

loki_setup: Suspect size value for option option

Installing mimetypes...
Installing desktop menu entries...
Installing desktop icon...

(process:3982): GLib-GObject-CRITICAL **: gtype.c:2706: You forgot to call g_type_init()

(process:3982): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed

(process:3982): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed
Google Earth has caught signal 11.

We apologize for the inconvenience, but Google Earth has crashed.
This is a bug in the program, and should never happen under normal
circumstances. A bug report and debugging data have been written
to this text file:

/root/.googleearth/crashlogs/crashlog-4c6fb238.txt

Please include this file if you submit a bug report to Google.
[root@fsc Downloads]# java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.1) (fedora-37.b17.fc13-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)

[root@fsc Downloads]# ./GoogleEarthLinux.bin --help
Makeself version 2.1.5
1) Getting help or info about ./GoogleEarthLinux.bin :
./GoogleEarthLinux.bin --help   Print this message
./GoogleEarthLinux.bin --info   Print embedded info : title, default target directory, embedded script ...
./GoogleEarthLinux.bin --lsm    Print embedded lsm entry (or no LSM)
./GoogleEarthLinux.bin --list   Print the list of files in the archive
./GoogleEarthLinux.bin --check  Checks integrity of the archive

2) Running ./GoogleEarthLinux.bin :
./GoogleEarthLinux.bin [options] [--] [additional arguments to embedded script]
with following options (in that order)
--confirm             Ask before running embedded script
--noexec              Do not run embedded script
--keep                Do not erase target directory after running
the embedded script
--nox11               Do not spawn an xterm
--nochown             Do not give the extracted files to the current user
--target NewDirectory Extract in NewDirectory
--tar arg1 [arg2 ...] Access the contents of the archive through the tar command
--                    Following arguments will be passed to the embedded script
[root@fsc Downloads]# pwd
/home/feng/Downloads
[root@fsc Downloads]# cd /usr/local/google-earth/
[root@fsc google-earth]# ll
总用量 74024
-rw-r--r--.   1 root root    71677  8月 21 19:01 drivers.ini
-rwxr-xr-x.   1 root root     1308  8月 21 19:01 googleearth
-rwxr-xr-x.   1 root root     3876  8月 21 19:01 googleearth-bin
-rw-r--r--.   1 root root     4754  8月 21 19:01 googleearth-icon.png
-rw-r--r--.   1 root root      638  8月 21 19:01 googleearth-mimetypes.xml
-rw-r--r--.   1 root root    17748  8月 21 19:01 googleearth.xpm
-rw-r--r--.   1 root root      426  8月 21 19:01 Google-googleearth.desktop
-rw-r--r--.   1 root root    18011  8月 21 19:01 gpl.txt
-rwxr-xr-x.   1 root root  1490232  8月 21 19:01 gpsbabel
-rw-r--r--.   1 root root      983  8月 21 19:01 ImporterGlobalSettings.ini
-rw-r--r--.   1 root root     5054  8月 21 19:01 ImporterUISettings.ini
-rw-r--r--.   1 root root        0  8月 21 19:01 kh20
drwxr-xr-x.   2 root root     4096  8月 21 19:01 lang
-rwxr-xr-x.   1 root root    14724  8月 21 19:01 libalchemyext.so
-rwxr-xr-x.   1 root root    10140  8月 21 19:01 libapiloader.so
-rwxr-xr-x.   1 root root   438432  8月 21 19:01 libauth.so
-rwxr-xr-x.   1 root root   883784  8月 21 19:01 libbase.so
-rwxr-xr-x.   1 root root   614024  8月 21 19:01 libbasicingest.so
-rwxr-xr-x.   1 root root  3116356  8月 21 19:01 libcollada.so
-rwxr-xr-x.   1 root root    85932  8月 21 19:01 libcommon_gui.so
-rwxr-xr-x.   1 root root    10344  8月 21 19:01 libcommon_platform.so
-rwxr-xr-x.   1 root root   660692  8月 21 19:01 libcommon.so
-rwxr-xr-x.   1 root root   220524  8月 21 19:01 libcommon_webbrowser.so
-rwxr-xr-x.   1 root root    22948  8月 21 19:01 libcomponentframework.so
-rwxr-xr-x.   1 root root   209928  8月 21 19:01 libcurl.so.4
-rwxr-xr-x.   1 root root  7657140  8月 21 19:01 libevll.so
-rwxr-xr-x.   1 root root   845264  8月 21 19:01 libflightsim.so
-rwxr-xr-x.   1 root root    11704  8月 21 19:01 libfusioncommon.so
-rwxr-xr-x.   1 root root  7900272  8月 21 19:01 libgdal.so.1
-rwxr-xr-x.   1 root root   277340  8月 21 19:01 libge_net.so
-rwxr-xr-x.   1 root root  3387556  8月 21 19:01 libgeobase.so
-rwxr-xr-x.   1 root root   330520  8月 21 19:01 libgeobaseutils.so
-rwxr-xr-x.   1 root root   517084  8月 21 19:01 libGLU.so.1
-rwxr-xr-x.   1 root root  1194992  8月 21 19:01 libgoogleearth_free.so
-rwxr-xr-x.   1 root root   360628  8月 21 19:01 libgooglesearch.so
-rwxr-xr-x.   1 root root   281384  8月 21 19:01 libgps.so
-rwxr-xr-x.   1 root root   415112  8月 21 19:01 libicudata.so.38
-rwxr-xr-x.   1 root root  1087360  8月 21 19:01 libicuuc.so.38
-rw-r--r--.   1 root root   432748  8月 21 19:01 libIGAttrs.so
-rw-r--r--.   1 root root  1014232  8月 21 19:01 libIGCore.so
-rw-r--r--.   1 root root   558320  8月 21 19:01 libIGExportCommon.so
-rw-r--r--.   1 root root  3707908  8月 21 19:01 libIGGfx.so
-rw-r--r--.   1 root root   297548  8月 21 19:01 libIGMath.so
-rw-r--r--.   1 root root   885932  8月 21 19:01 libIGOpt.so
-rw-r--r--.   1 root root  1095360  8月 21 19:01 libIGSg.so
-rw-r--r--.   1 root root   164340  8月 21 19:01 libIGUtils.so
-rwxr-xr-x.   1 root root   227636  8月 21 19:01 libinput_plugin.so
-rwxr-xr-x.   1 root root  1861468  8月 21 19:01 liblayer.so
-rwxr-xr-x.   1 root root    96492  8月 21 19:01 liblayout.so
-rwxr-xr-x.   1 root root   367428  8月 21 19:01 libmath.so
-rwxr-xr-x.   1 root root   378344  8月 21 19:01 libmeasure.so
-rwxr-xr-x.   1 root root    44036  8月 21 19:01 libmoduleframework.so
-rwxr-xr-x.   1 root root  1235196  8月 21 19:01 libnavigate.so
-rw-r--r--.   1 root root     7552  8月 21 19:01 libnss_mdns4_minimal.so.2
-rwxr-xr-x.   1 root root    36808  8月 21 19:01 libport.so
-rwxr-xr-x.   1 root root   208088  8月 21 19:01 libproj.so.0
-rwxr-xr-x.   1 root root  2517408  8月 21 19:01 libQtCore.so.4
-rwxr-xr-x.   1 root root  8941228  8月 21 19:01 libQtGui.so.4
-rwxr-xr-x.   1 root root   878444  8月 21 19:01 libQtNetwork.so.4
-rwxr-xr-x.   1 root root 14368872  8月 21 19:01 libQtWebKit.so.4
-rwxr-xr-x.   1 root root   393664  8月 21 19:01 librender.so
-rwxr-xr-x.   1 root root   154380  8月 21 19:01 libreporting.so
-rwxr-xr-x.   1 root root  1123308  8月 21 19:01 libsgutil.so
-rwxr-xr-x.   1 root root  1612904  8月 21 19:01 libspatial.so
-rwxr-xr-x.   1 root root   211092  8月 21 19:01 libviewsync.so
-rwxr-xr-x.   1 root root    77928  8月 21 19:01 libwebbrowser.so
-rwxr-xr-x.   1 root root   315180  8月 21 19:01 libwmsbase.so
drwxr-xr-x.   3 root root     4096  8月 21 18:28 linux
-rw-r--r--.   1 root root      661  8月 21 19:01 PCOptimizations.ini
drwxr-xr-x.   3 root root     4096  8月 21 18:28 plugins
-rw-r--r--.   1 root root        7  8月 21 19:01 qt.conf
drwxr-xr-x. 291 root root    16384  8月 21 19:01 resources
drwxr-xr-x.   2 root root     4096  8月 21 19:01 shaders
-rwxr-xr-x.   1 root root     1708  8月 21 19:01 uninstall
[root@fsc google-earth]# ./uninstall
Product: Google Earth
Installed in /usr/local/google-earth
Uninstalling desktop menu entries...
Uninstalling mimetypes...
Google Earth has been successfully uninstalled.

[root@fsc google-earth]# ll
总用量 0
[root@fsc google-earth]# pwd
/usr/local/google-earth
[root@fsc google-earth]# cd ..
[root@fsc local]# ll
总用量 36
drwxr-xr-x. 2 root root 4096  8月 21 19:05 bin
drwxr-xr-x. 2 root root 4096 10月  1 2009 etc
drwxr-xr-x. 2 root root 4096 10月  1 2009 games
drwxr-xr-x. 2 root root 4096 10月  1 2009 include
drwxr-xr-x. 2 root root 4096  8月 15 15:42 lib
drwxr-xr-x. 2 root root 4096 10月  1 2009 libexec
drwxr-xr-x. 2 root root 4096 10月  1 2009 sbin
drwxr-xr-x. 5 root root 4096  8月  4 01:05 share
drwxr-xr-x. 2 root root 4096 10月  1 2009 src
[root@fsc local]# pwd
/usr/local
[root@fsc local]# cd /home/feng/Downloads/
[root@fsc Downloads]# ll
总用量 57824
drwxrwxr-x. 5 feng feng     4096  8月 15 16:02 1634b5f42ec7dff29638227bd15edb9d
-rw-rw-r--. 1 feng feng   829116  8月 15 15:48 1634b5f42ec7dff29638227bd15edb9d.rar
-rw-rw-r--. 1 feng feng   752024  8月 16 22:11 2004122913334251606.rm
-rw-rw-r--. 1 feng feng   180088  8月 16 22:11 734.mp3
-rw-rw-r--. 1 feng feng     7826  8月 10 22:04 GoogleBookmarks.html
-rwxr-xr-x. 1 feng feng 31399370  8月 21 18:24 GoogleEarthLinux.bin
-rw-rw-r--. 1 feng feng  1424887  8月 15 15:30 hanzhongren.rar
-rw-rw-r--. 1 feng feng 14754987  8月 21 17:26 opera-10.61-6430.i386.rpm
-rw-rw-r--. 1 feng feng   833828  8月 15 15:32 rarlinux-3.9.3.tar.gz
-rw-rw-r--. 1 feng feng  8887395  8月 15 15:47 风格安装录像.rar
[root@fsc Downloads]# ./GoogleEarthLinux.bin
Verifying archive integrity... All good.
Uncompressing Google Earth for GNU/Linux 5.2.1.1547..............................................................
loki_setup: Suspect size value for option option

loki_setup: Suspect size value for option option

loki_setup: Suspect size value for option option

Installing mimetypes...
Installing desktop menu entries...
Installing desktop icon...

(process:4330): GLib-GObject-CRITICAL **: gtype.c:2706: You forgot to call g_type_init()

(process:4330): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed

(process:4330): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed
Google Earth has caught signal 11.

We apologize for the inconvenience, but Google Earth has crashed.
This is a bug in the program, and should never happen under normal
circumstances. A bug report and debugging data have been written
to this text file:

/root/.googleearth/crashlogs/crashlog-4c6fb365.txt

Please include this file if you submit a bug report to Google.
[root@fsc Downloads]# java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.1) (fedora-37.b17.fc13-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)

[root@fsc Downloads]#

We apologize for the inconvenience, but Google Earth has crashed.
This is a bug in the program, and should never happen under normal
circumstances. A bug report and debugging data have been written
to this text file:

/root/.googleearth/crashlogs/crashlog-4c6fb238.txt

Please include this file if you submit a bug report to Google.
[root@fsc Downloads]# java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.1) (fedora-37.b17.fc13-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)

##############################################

knityster仁兄说有这样的一个方法,还没有验证是否跟上面所说的是否是同一问题;暂转载过来,供有来者参考,希望有用。

knityster原文:http://hi.baidu.com/knityster/blog/item/6ae1e095f24f30067af4804f.html

在此感谢!

在Fedora 13 下下载了官方的GoogleEarth后无法启动,出现如下错误:
========================================================================
[root@YWX download]# googleearth

(process:3026): GLib-GObject-CRITICAL **: gtype.c:2706: You forgot to call g_type_init()

(process:3026): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed

(process:3026): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed
Google Earth has caught signal 11.

We apologize for the inconvenience, but Google Earth has crashed.
This is a bug in the program, and should never happen under normal
circumstances. A bug report and debugging data have been written
to this text file:

/root/.googleearth/crashlogs/crashlog-4c83a96c.txt

Please include this file if you submit a bug report to Google.
[root@YWX download]# java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.1) (fedora-42.b18.fc13-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)
========================================================================

Google了好久, 终于找到解决办法:
vi ~/.config/Google/GoogleEarthPlus.conf

找到类似如下语句:
lastTip=9

在其后添加如下语句:
enableTips=false

----------------------------------------

字面意思好像是“不启用提示”, 对使用应该没有什么影响, 没办法,凑合着用了。

P.S.
Linux 下 修改 Google Earth 的默认缓存和KMLPath目录方法:
==========================================
#  vi ~/.config/Google/GoogleEarthPlus.conf

相应修改 CachePath 和  KMLPath 字段的值即可
==========================================

linux 字符界面下显示查看图片,不知真的假的

wo306964521 发表于 2009-03-05 14:48

linux 字符界面怎么显示图片

linux 字符界面怎么显示图片
linux 字符界面怎么显示图片
linux 字符界面怎么显示图片

emmoblin 发表于 2009-03-05 20:20

用framebuffer
在字符下都能看电影

kns1024wh 发表于 2009-03-06 22:27

[quote]原帖由 [i]emmoblin[/i] 于 2009-3-5 20:20 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6914430&ptid=1064227][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]
用framebuffer
在字符下都能看电影 [/quote]
比较有趣的事情

wo306964521 发表于 2009-03-09 16:18

回复 #2 emmoblin 的帖子

linux下要显示图片用什么工具好呢?尽量少占资源。尽量不要桌面环境

kelvinwu_2008 发表于 2009-04-23 10:32

二楼的能不能截个图看看?

有点夸张.

我也想知道如何在字符下看图片,知道人说说.

lrz 发表于 2009-04-23 13:03

fedora 8
yum install fbida

启动时内核行加vga=792
fbi jpg

lrz 发表于 2009-04-23 21:11

中午时赶着上班,现在补图。
[attach]230724[/attach]
不过fbi在fbterm中运行有问题,所以用的是mgaview。
至于看电影,试试这个:
mplayer -vo fbdev2 电影文件 -vf scale=1024:768

cst05001 发表于 2009-04-26 09:50

为什么不用图形界面呢?极端?

tianlijian 发表于 2009-04-29 21:55

[quote]原帖由 [i]lrz[/i] 于 2009-4-23 13:03 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6985859&ptid=1064227][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]
fedora 8
yum install fbida

启动时内核行加vga=792
fbi jpg [/quote]
除了fbi还要装什么,我的提示/dev/fb0: no such file or directory

jerrywjl 发表于 2009-04-30 00:40

当年很早期的mplayer,就能够在RH9.0字符界面下看avi。

tianlijian 发表于 2009-04-30 13:56

有没有人说说,具体需要安装哪些东西?

emmoblin 发表于 2009-04-30 22:24

DirectFB
可能能办到

mgunix 发表于 2009-05-12 13:21

[quote]原帖由 [i]lrz[/i] 于 2009-4-23 21:11 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6986432&ptid=1064227][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]
中午时赶着上班,现在补图。
230724
不过fbi在fbterm中运行有问题,所以用的是mgaview。
至于看电影,试试这个:
mplayer -vo fbdev2 电影文件 -vf scale=1024:768 [/quote]

好强悍啊!

页: [1]