最近一直折腾Debian啊,KDE已经玩的很熟练了,LXDE碰到点麻烦,startlxde命令执行后什么事情都没发生啊,不知道如何解决。只能盘算着先用用Debian的Live版本。

今天想开启VMware Player的,没想到VMware Player开不出来了,从错误信息中,得知编译出现错误。我的Fedora的内核不知道什么时候升级到2.6.40了。2.6.40其实就是3.0改个名字而已,怀疑大约是代码发生改动,使得VMware Player编译出错了。因此迅速Google,在 http://osicarg.wordpress.com/2011/07/15/here-is-patch-for-vmware-player-3-1-4-build-385536-on-linux-2-6-39-2-amd64-kernel/ 中找到了解决方案,不过这个解决方案写得并不是很清楚。因此我额外说明下。

下载 这个 tar.bz2 包

解压,然后将其中的五个tar文件(vmblock.tar vmci.tar vmmon.tar vmnet.tar vsock.tar)放入 /usr/lib/vmware/modules/source,覆盖原文件,即可。

然后再用root用户开启VMware Player,即可编译成功。

之所以写这么简单的文章,只是因为希望中文文章至少能有一个Google搜索结果而已,虽然英文搜索结果相当多,但希望帮助到英文不好的Fedora/Linux用户,同时也帮助提升简体中文文章的质量。

本文记录如何使用RVM,而不是Yum和APT,安装最新版本Ruby on Rails。之所以不用Yum和APT,是因为Fedora的Yum源,Debian的deb源都没有Ruby 1.9.2。

首先,浏览:https://rvm.beginrescueend.com/ 获取Quich install内的安装RVM的方法,这个安装方法可能随着时间的推移而改变,目前安装方法是:

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

在运行安装命令之前,请确定务必满足这三个要求:

bash >= 3.2 is required
curl is required
git is required (>= 1.7 recommended)

如果没有满足,可以运行:

yum install -y bash curl git

你还需要安装这些以满足Ruby on Rails的要求,如果不安装,编译后的rubygems可能会有问题。

yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel
apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev

运行并确保这句语句存在于.bashrc和.bash_profile的最后

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

确保这个语句存在于.rvmrc的最后

export rvm_pretty_print_flag=1

用RVM安装Ruby最新版本(1.9.2)(如果遭遇网络问题请自行解决)

rvm install 1.9.2

查看RVM目前管理的所有的Ruby版本

rvm list

命令RVM使用Ruby的最新版本(ruby-1.9.2-p290)

rvm use ruby-1.9.2-p290

完成后,检查version

ruby -v

如果能显示出版本,表示ruby安装已经成功,下面开始准备安装rails,我们将使用rubygems来安装

首先,创建一个gemset

rvm --create use 1.9.2@rails3

默认使得这个gemset

rvm --default use 1.9.2@rails3

下面安装rails,建议先升级gem,可能可以避免一些错误出现

gem update --system
gem update
gem install rails

安装完成后,检查version

rails -v

如果能显示出版本,表示rails已经安装成功,赶紧创建一个项目,体现了Ruby on Rails的快感吧!

本文根据 http://www.wretch.cc/blog/yschu7/13353264 整理并精简部分不必要的内容

如果是Ubuntu / Debian 用户,还可以阅读 http://coding.smashingmagazine.com/2011/06/21/set-up-an-ubuntu-local-development-machine-for-ruby-on-rails/,写得比我更详细些。

 

上次Gnome 3悲剧了一回,我感觉如果再继续使用Gnome 3可能会发生点什么严重后果,所以改行用用KDE,仅仅是玩玩,发行版本仍然是Fedora不变。KDE并不是我熟悉的桌面环境,安装的时候遇到一点问题,分享下,如果大家装的时候也发生类似的问题,也许可以Google到本文。

1. 从官网上下载安装的Libreoffice 3.4.1没有KDE样式。

这不是libobasis3.4-kde-integration没有正确安装的问题,而仅仅是libreoffice目录下的/ure/lib/libstdc++.so.6 这个文件有点问题而已,从 /usr/lib/libstdc++.so.6 复制一个覆盖掉即可。

2. 在例如于Chrome,Eclipse这样的非QT的GTK软件里Fcitx输入法无法激活,不能输入中文

这个Google的我好辛苦,后来终于查到,只要

su -c 'yum install gtk2-immodule-xim'

即可。感谢 http://www.linux-ren.org/modules/flyspray/index.php?do=details&task_id=253 的帖子

3. 在Kopete中使用Business帐号登录GTalk

在Modify Account中,Connection选项卡,勾上Override default server information,然后在Server文本框中填写 talk.google.com,即可。

目前还有一个问题就是此前用的“坚果铺子”软件在KDE下几乎不能安装,因为依赖了nautilus的库文件。目前在等待他们的回复。

 

 

 

感觉Gnome 3 还是很不成熟的,很多以前可以用图形化程序解决的问题现在反而没有了,大概等到发布3.2版本的时候会改进吧。无论如何,我用的是Fedora而不是CentOS发行版本。

Fedora 15下笔记本电脑合盖后总是会休眠,不合我习惯,我一般只要黑屏+锁屏就可以了,找了没有找到图形化的修改方法,gconf-editor中似乎也找不到,Google后得知,可以用这条命令来修改

供电状态下:

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "<setting>"

<setting> ::= nothing|blank|suspend|hibernate|shutdown

电池状态下:

gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action "<setting>"

<setting> ::= nothing|blank|suspend|hibernate|shutdown

就可以了。

不过似乎不能锁屏,System Settings -> Screen 中已经设置过了,没起作用。gsettings我也不熟悉,不知道有没有更好的解决方案。

参考文献: fedora.rasmil.dk/blog/?p=208

我现在在Fedora 15下写这篇短文。

Fedora 15目前安装后的Netbeans 7.0有严重Bug,主要表现在Menu下,有这样几个症状。鼠标hold在一个item上,实际选择的是上一个item。有时鼠标单击无法打开menu,需要按住鼠标才能打开,有时干脆打不开,等一系列奇怪症状。怀疑是Java GUI库和Gnome 3之间存在兼容问题。

解决方案很简单

su -c 'vi /usr/local/netbeans/etc/netbeans.conf'

打开这个文件,在netbeans_default_options中可以搜索到 -J-Dapple.laf.useScreenMenuBar=true 这项,将他修改为false即可。

目前是这么解决的,我还要继续试用下Fedora 15的Netbeans,可能还有更多Bug隐藏着。

很高兴Netbeans 7.0修改了很多我已知的存在于老版本的Bug。

另外,官网上下载的Eclipse 3.6.2 在Fedora 15下打开即崩溃。但是通过Yum安装的Eclipse是正常的。

崩溃的解决方案是这样的:

在eclipse.ini下增加如下两行即可

-Dorg.eclipse.swt.browser.UseWebKitGTK=true
-Dorg.eclipse.swt.browser.XULRunnerPath==/usr/lib/xulrunner-2.0/

Gnome 3的搜索框和消息提示框目前用ibus输入中文连候选词也没有,也不清楚原因及如何解决。

修改Empathy新消息提示音

2011年5月12日 15:17

话说Empathy这个声音真的是轻啊,简直和没有差不多,@ghosTM55 发过来的Gtalk,我就坐在电脑前写代码居然没听到。。平时也就算了,万一有个重要事情没听到后果就严重了。因此,我决心要修改Empathy的提示音。Empathy的提示音在哪里修改还真的是没找到,Google后得知,Empathy所有声音都是属于sound-theme-freedesktop这个RPM包的,查询即知,声音都在/usr/share/sounds/freedesktop/stereo下,进入后发现全是oga格式的声音,这个格式对我来说是蛮新鲜的。不知道Linux下如何将通用的MP3格式的声音转化为oga格式,Google后知道Linux有个著名的软件叫gnac,可以做声音格式转换,支持m4a,flac,oga,mp3,wav,spx等格式,官方网站 gnac.sourceforge.net/,介绍 www.lupaworld.com/article-210899-1.html(我承认这是在做广告,自由软件,做个广告什么的不非法吧)。下载源码后编译安装(依赖包我已经不记得了,但确实没有什么神奇的,官网的编译说明已经很详细了,反复使用./configure --prefix=/usr命令然后按要求安装依赖包即可,如果遇到了找不到的包就Google),然后即可运行。到这里一切都很简单,然后就发现问题了,格式转换的时候gnac提示需要一个叫做gstreamer element audioconvert的插件,gnac可以自行查询安装这个插件,但是结果失败,也就是说,这个插件可能不存在于Yum中。我Google了一下,猜测这个插件可能在gstreamer-plugins-ugly里,这个包Fedora的官方Yum中没有,我掏出珍藏的RpmFusion包安装:

su -c "rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm"
su -c "rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm"

但是并没有解决问题,我把Fedora 14升了下级,依旧没有解决。不得以,干脆发邮件了,与开发者直接交流不是开源软件一直宣传的理念么,邮件地址:gnac-list@gnome.org,内容如下,额。本人英语超烂,勿嘲笑

i am a fedora 14 user, i need to convert some mp3 to oga, but gnac needs an additional plugin called gstreamer element audioconvert. gnac tried to search it by itself, but it is failed, and i alse dont know which rpm it need. so please help me, thank you.

一天后,回复

audioconvert is part of the gstreamer-plugins-base package. 

I've seen several people with fedora 14 complaining about audioconvert in relation to totem...but since it's a general dependency issue, I'll redirect you to the thread that supposedly solves the issue. You may just need to reinstall gs-plugins-base.

apologies to the devs for posting a thread about totem, but it seemed like the easiest thing. http://forums.fedoraforum.org/showthread.php?p=1429783

我立即访问了给出的网页,第一帖给出了一个方案
yum install gstreamer-ffmpeg gstreamer-plugins* -x *devel*

下了上百MB的安装文件,但依然没有解决,继续看那张网页,#2中有这样一句话,basically remove the ~/.gstreamer-x.x/registry*.*,于是立即运行了

rm ~/.gstreamer-0.10/registry*.*

然后运行gnac来格式转换,瞬间完成,替换/usr/share/sounds/freedesktop/stereo下的message-new-instant.oga,测试,成功!这样Empathy的提示音就被替换成功。

很高兴上星期天在本校举办的的Ubuntu 11.04 Release Party(详细可见:http://wowubuntu.com/shanghai-natty-party-review.html),我本人也算是组织者之一吧,Release Party前多次协助组织者uifiddle的工作。会中贡献了自己的电脑,不过没派上什么用场,演讲者一个个都自带笔记本电脑,由于台子小,全把电脑压在了我的电脑上,不仅被压,还被学校那该死的投影仪插,插到后来Ubuntu 11.04索性花屏了,重启到Fedora下才解决。

投影仪里这台电脑就是我的哦。

会场照片,知道哪个是我么?

会后收获很大。私吞一个Canonical官方出的Ubuntu的2G U盘,很漂亮,一个U盘集线器,一张Ubuntu 10.10 官方的光盘,N多纪念贴纸贴满整个寝室,蛮疯狂的说。还和SHLUG人一起吃汉堡王,认识了ghosTM55,LTN,雨蒼,Shell Xu等一系列牛人。

雨蒼不愧是台湾人(中华民国台湾地区),言语中都散发着中华民国人民特有的魅力,这种魅力在我们从小生活在中国大陆的人身上是从没有见过的,事实上上次的拥抱HTML5技术大会上就已经见识过另一个台湾人布丁(hlb)的演讲,幽默的话语,自由的气息,图文并茂的Slides,还有些对GFW的讽刺,已经构成了我对中华民国的主要印象。

 

Fedora 14下编译安装chmsee 1.3.0

2011年2月26日 11:38

chm文件全名是Microsoft Compiled HTML Help,看名字也猜得出是微软的格式,Windows操作系统自带它的阅读器,chm普遍用于帮助文件和电子书,但在国内,他的应用范围更广,几乎很多在线文档本地化后都采用这个格式。一般做技术的不可能不接触它,但是一般Linux发行版本不自带chm的阅读器,只能安装软件,chmsee就是我所用过最好的chm阅读器了,他还是一款国产软件,我猜之所以看不到比他更好地国外软件,也许是因为中国人更有需求吧。

项目地址:http://code.google.com/p/chmsee/

但是Fedora 14的chmsee包有点奇怪,只有1.1.0版本,没有最新的1.3.0版本。1.1.0的Bug很厉害,影响了正常使用,最新版本则修复了这些Bug。但是Fedora 14没有chmsee最新版本,我在网上也没有搜索到适合Fedora的RPM包,惟一的OpenSUSE的RPM包使用yum localinstall安装仍有不能解决的依赖关系,这使得我们不得不用源码来编译安装了。

我看到项目网站上解释他没有发布二进制安装文件的原因是“Linux 的发行版太多了,还是只发布源码比较省事”,我不否认这种说法的正确性,但也不能否认源码编译安装对我这种Linux菜鸟而言确实非常困难。主要原因当然是缺乏库文件,而且一旦缺乏,我往往不知道该下载哪个包来解决,如果出现RPM包常见的依赖性地狱,更是让我绝望,所以,除非确实找不到二进制包并且需求这个软件,否则我绝对不会去编译源代码。

我看到他的项目文件讲了依赖如下:

cmake >= 2.6.4
gtk2 >= 2.18
xulrunner >= 1.9
chmlib
libxml2
libgcrypt
intltool
幸运的是,Yum库中这些软件全都有,不幸的是,安装了后连cmake都通不过,还是有大量库文件缺乏。后来猜测他的库文件可能不是放在这些可执行的程序中,而是放在devel包中,因此尝试安装了他们的devel包,结果竟然成功了(后来发现项目文件中说的很清楚:Before compiling, you need to check following libraries or their development packages already installed on your system.可惜我一开始没有注意),只要cmake一通过,就不会再有依赖性问题了,安装非常成功。下面复述下正确的依赖。
 
cmake
gtk2-devel
xulrunner-devel
chmlib-devel
libxml2-devel
libgcrypt-devel
intltool
版本方面不用担心,Yum库中的软件都符合要求。
 
软件截图:
 
 
可以看到中文乱码,这应该是1.3.0的一个Bug,chmsee采用内部默认的机制来识别编码,但有点问题,项目网站中已经有人提出,想必下一个版本即可修复。在此之前,可以手动修改文件编码为GB2312或是UTF-8,chmsee会缓存每一个曾经打开过的文件的编码设置。
chmsee的安装说明总体上还是很清楚的,至少按照他的说明来安装依赖后编译就不再出错,有些Linux软件就不是这样了,感觉依赖库根本没写全。我猜大概要好好学习下Linux下的编程才能清楚究竟该如何编译吧。如果大家有更好的技巧,请一定要告诉我,谢谢。

Yum库配置简单方法

2010年12月04日 07:20

好久没写博客了,正如我之前所说,在考试。大学考试就是一堆理论考来考去,我不是一个善于高谈阔论的人,也不是一个擅长考试的人,考的很糟糕,可以说,学习越深入,我就越不擅长考试了。

最近用上了企鹅输入法fcitx 4.0,很棒的输入法,我自从使用Linux以来还没见过这么漂亮的Linux软件呢,只是他的词库不敢恭维,偶尔还会崩溃,但总比ibus强多了。
 
发现Linux上的Office最好的还是OpenOffice 3.2.1版本,虽然比起自带的OpenOffice 3.2只有0.0.1的提升,但是质量真的好很多,不太会死掉了,美观性也大幅增加。LibreOffice项目我当然是支持的,期待的,只是目前还在beta版本,稳定性和OpenOffice 3.2几乎没有差别,所以还没用。
 
Ubuntu Tweak是个很实用的Gnome配置软件,最近才发现。
 
Ubuntu的Gnome-panel版本太低,稳定性很糟糕,一直想升级,可惜不会。Gnome-panel几乎是Gnome桌面的操作系统中最不稳定的组件之一了,无论是在Ubuntu上,还是在Fedora上,都不稳定,GUI,作为一个系统的门面,这样不稳定真的很不好。
 
我们学校搞开源社区了,很高兴,开源的意义我从今年才开始深入认识,这么快也可以为之作贡献了。我们的首要任务是做个我们社区的门户网站,用PHP,在做这个网站之前,我们先做一个PHP框架,这个框架相当于社区的第一个产品,根据Deltamaster的分配,我的任务是Ajax模块,缓存模块和代码优化。
 
我年初帮助Deltamaster做过项目,但结果是以惨败告终的,非但没有做出贡献,反而还在添乱。事后我反思了很久,主要是急功冒进,对任务的认识不够深刻,对语言的思想掌握不够。后者现在已经没什么问题了,前者还在学习。一个程序员,操之过急地编码根本没有意义,画出几张UML图,统筹兼顾,和上面进一步明确任务和接口比这重要的多。
 
RHCE考试推迟到明年一月了,很好,这样时间充裕多了。
 
还有很多话想说,但是不能说了,本文的主题不得不开始了。
 
Yum库的配置网上很多,但在我看来,基本没说清楚,这就是撰文的目的。
 
配置Yum很简单,第一步,用户必须告诉Yum这个库的存在,因此必须在/etc/yum.repos.d中要么创建一个后缀名为repo的文件,要么在已有的repo文件上增加新Yum库的地址,具体写法完全可参考系统自带的文件的写法,以下是我实验库的文件内容:
 
[testyum]                                                   #yum库名字,必须唯一
name=Fedora Test Yum                           #yum库全名,不多解释
baseurl=file:///home/bachue/Downloads   #必须是一个文件夹的地址,可以是FTP,HTTP,当然也可以象我一样为本机地址
enabled=1                                                 #是否启用该库,为1为启用
metadata_expire=7d                                 #源数据过期时间,不多解释
gpgcheck=0                                              #是否检验gpg的key,我是实验库,不需要检验。

更多语法还是请参考已有的repo文件。

完事后,作为用户其实就没啥事了。而Yum库本身还是需要一定的配置,否则不能正常工作。

为什么要配置呢?不配置Yum怎么知道他的库里有哪些包呢?包的详细信息呢?怎么做分组呢?怎么知道包与包之间的依赖关系呢?正是因为不知道,所以要有个配置文件,其实准确的说是源文件,来告诉别人这个Yum库的若干国情。

Yum库的软件,作为实验我挑选了google-chrome-stable和linuxqq的rpm包,这两个软件都是闭源的,所以一定不会出现在官方的Yum库里。

Yum的配置文件有五个,必须放在Yum库的repodata文件夹下,其中有四个(他们是filelists.xml.gz  other.xml.gz  primary.xml.gz  repomd.xml)可以由一句命令createrepo(可能需要安装同名rpm包)自动生成,但最后一个文件比较难对付,第一,他不可能手写,打开就知道,多国语言,想必不可能有人懂这么多语言。第二,可以有命令来生成,和生成前四个文件的命令还是同一个,但他有个古怪的要求,必须有一个其他库的这个文件作为模板,才可以生成,说真的,玩这么多年电脑从没见过这种要求,如果你的电脑上或光盘里已经有Yum库(DVD版本的安装光盘几乎都有),并且有名字中带comps的那个xml配置文件(可能已经被gzip压缩),就可以用他,如果没有,用find命令全系统搜索,关键字是*comps*xml*,我的fedora就有这样一个文件。如果这样都没有找到,那么只能从其他电脑上找了,网上我Google过,没有发现人家把这个文件挂上来。

假设已经找到(不会找不到吧,DVD里真有),生成配置文件的整个命令如下:createrepo -g [该模板文件地址,注意后缀名是xml] [Yum库地址],在我的电脑上,这条命令是这样的,createrepo -g /var/cache/yum/i386/14/fedora/2d112e279cf18476b72e5b30f60c1aa55e0297e7a05f4d9891879ee83d298e11-comps-f14.xml /home/bachue/Downloads/。这条命令将自动在库文件下创建repodata文件夹,并创建好五个配置文件。这样,配置就算完成了。

如果要去试试这个库能否正常工作,一定不要忘了,Yum是有缓存的,如果不久前刚刚扫描过这个Yum库,就不会再去扫描一遍,但你其实已经改过他的配置,或是有新软件入库了,而Yum却不知道,以至于你的操作看上去就像没有生效,这样可能会让你以为Yum没有正常工作。我就出过这样的糗事。清除缓存的命令是yum clean all,一定不要忘了。

讲解完毕,是否很简单呢?

在没学RHCE以前,感觉deb包很强,毕竟不容易出现依赖性问题,学了RHCE,感觉rpm才是真的好,功能实在太强大了。