2012年7月26日星期四

Go语言学习笔记(1) - Go开发环境搭建(Linux)

今天开始正式学习Go语言,对于这种新语言我还是蛮有兴趣

这个是我的学习笔记系列,会随着我的学习慢慢地编写,希望对于后来者有帮助.

本来想先写一个Go语言的介绍,但我想,像我们这种新来者哪有能力做介绍了,所以关于Go语言的介绍大家还是可以去这个网站获取一些简单介绍可以参考: 我为什么喜欢Go语言.

好,今天主要记录Go语言的开发环境搭建过程

首先说明一下Go语言开发环境的状况, 官方发布了两个编译器, 一个就Gc,一个叫Gccgo,两个的区别就像是一个是官方自己开发的,另外一个是利用了已有的别人开发的后台编译器,官方再自己开发一个前端来支持Go语言编译

简单来说,官方自己开发的编译器编译速度当然要快很多了,原因是层次少了嘛.而Gccgo编译起来就要慢,但是实际程序运行速度要快,而且支持的平台也比Gc要多得多.原因是Gccgo经过很多年的开发,早已成熟,各类优化也做得很好.

两个编译器的一些简单区别介绍可以参考: Gccgo in GCC 4.7.1

我用的是Gc,也没什么原因,只是不知不觉已经安装了Gc了,就顺其自然吧,对于学习来说,两个编译器几乎没区别.

可能有人会有疑问,Go是否有什么IDE呢?但是很遗憾,Go现在还没有任何官方的IDE.唯一有的就是通过插件来实现eclipse下的Go语言支持,该项目还在开发初期,具体可以参考这里:
goclipse - Eclipse-based IDE for Google's Go Programming Language

下面开始介绍Linux下Go语言环境搭建过程

首先去官网下载Go语言源码,然后下载最新的Go语言源码1.0.2(LInux 32位)

下载到自己喜欢的地方,注意这就是Go以后的工作地方,建议设置得聪明点

接下来设置环境变量(Path),执行以下命令:


% sudo export GOROOT=Go源码所在根目录


% sudo export PATH=$GOROOT/bin:$PATH


最后需要编译Go

% cd $GOROOT/src
% ./all.bash

最后要是没有出问题,你一定会看到

ALL TESTS PASSED

---
Installed Go for linux/386 in /home/resec/Programming/go
Installed commands in /home/resec/Programming/go/bin

好,这样,Go语言的开发环境就搭建好了.





2012年7月19日星期四

Gnome Shell Extensions 安装与推荐


Gnome Shell 扩展安装及一些常用扩展推荐

Gnome有着多年的历史,也具备扩展能力,因此有着数量巨大的扩展插件.

对于Gnome 3,现在我们可以去http://git.gnome.org/browse/gnome-shell-extensions,方便地进行扩展的安装和寻找工作了,需要注意的是这个网站暂时貌似只完整支持firefox,对于chrome等其他浏览器貌似有支持不完整的问题,对于我这种firefoxchrome两个浏览器同时用的人是没有任何问题的 : )



这个网站非常地强大,你可以直接在线安装插件,通过点选on/off按钮即可后台完成,可以说这是我见过最强大的在线扩展安装了.




但是这个网站还在发展中,仍处于beta,具备的扩展数也不多,但是必须的都已经有了,有一些很好用的扩展暂时并没有登录该网站,因此需要自己手动去它们各自的网页下载并安装.

下面介绍几个gnome3下常用的一些扩展,下面扩展不作说明都是意味着可以直接在gnome shell extensions上直接搜索得到.


一个用来在Gnome shell的用户菜单里面显示关机选项的扩展,实在受不了不能直接Shell直接关机的奇怪特性啊!


一个用来管理用户主题的插件,Gnome Tweak Tool可以直接进行用户主题的点选更换操作


一个在用户菜单里面添加显示进入高级设置的快捷选项扩展,以后进入Gnome Tweak Tool可以更加快了


将用户菜单的默认样式(状态图标+用户名)更换为一个退出按钮,看起来要舒服得多,我当然知道自己是什么用户名,就不明白为什么它要显示名字在哪里.

5.Places Status Indicator

在系统栏上添加一个进入系统文件系统各个目录的快捷方式,方便自己的操作吧

6.Remove Accessibility

删除在系统栏上的通用访问图标,这个对于绝大部分人来说都是应该的.

7.Weather indicator

这个扩展是在系统时间旁边显示天气信息,而且外观非常时尚,是用来摆显自用,居家旅行必备良物,gnome shell extensions上并没有这个插件,所以得自己下载


也可以添加PPA源用于以后自动更新

deb http://ppa.launchpad.net/webupd8team/gnome3/ubuntu precise main 
以上就是几个常用的扩展介绍.

Ubuntu下wine安装与使用

Wine,全称是Win Emulator, 顾名思义是一个用于在linux下运行Windows程序的程序,主要是拿来玩游戏的。

ubuntu的官方源里有wine,但是版本比较旧,一般我们都是用wine官方团队的PPA源来安装wine

首先添加ppa源:

sudo add-apt-repository ppa:ubuntu-wine/ppa

再更新索引包并安装

sudo apt-get update 
sudo apt-get install wine

包很大,请耐心等待啦.安装过程中需要你同意一个微软的协议,选OK就可以了.

安装完毕后,怎么才可以运行windows程序呢?

我们要先下载windows的安装程序包,然后去到安装包目录下,执行:

wine 安装包名字

然后就可以启动安装程序了,进行安装,就可以用window下的安装程序了.

更详细的说明可以看看我另外一篇文章:Ubuntu下用Wine运行Zoundry Raven

有些时候我们设置wine,可以用以下命令打开图形界面的设置程序:

winecfg


Wine本身支持的程序也是有限的,大家可以到这个网站看看wine已经支持的程序列表和排名

http://appdb.winehq.org/


2012年7月17日星期二

Ubuntu下卸载ibus并且安装fcitx输入法平台

ibus和fcitx都是linux下的输入法平台,当然在ubuntu下也可用。区别来说,最直接就是ubuntu下ibus的速度比fcitx要慢不少,原因大概是因为ibus为了支持全世界的语言,搞得整个底层太庞大了,而fcitx只为支持汉语,因而小巧得多

而且fcitx还支持外观美化,这点上比ibus实在要有吸引力得多。

今天我也尝试把ibus卸载掉(这个完全是好奇心所致,实际上ibus和fcitx完全可以共存,随时切换的),并安装fcitx用一段时间。

fcitx的项目主页:http://code.google.com/p/fcitx/

首先我们要先卸载ibus,卸载的方法很简单,在ubuntu一条指令就自动完成了:

sudo apt-get remove ibus


这条指令会把ibus包,ibus-pinyin包,ibus-table包三个包直接卸载掉,卸载完毕后最好重启一下。

另外如果还装了其他的ibus平台下输入法版本,如sunpinyin等,也应该一并删掉,指令行如下方:

sudo apt-get remove ibus-sunpinyin


现在已经卸载完ibus,接下来我们安装fcitx

对于fcitx的获得方法有很多,可以直接去fcitx的项目主页下载并编译安装。具体方法就不说了。

也可以直接添加PPA源,利用apt-get指令自动安装。官方的PPA源有两个,一个是nightly,一个是stable。对于12.04来说,暂时没有stable而只有nightly支持。

Stabel PPA:

sudo add-apt-repository ppa:fcitx-team/stable

Night PPA:

sudo add-apt-repository ppa:fcitx-team/nightly

大家可以选择自己需要的版本来使用,添加PPA后就可以进行fcitx的安装了

sudo apt-get update & sudo apt-get install fcitx

到这里其实fcitx的主体已经安装完毕了,当然大家可能还需要找回自己喜欢用的sunpinyin或者googlepinyin来使用,因此需要再继续安装具体的输入法。可通过以下指令安装:

sudo apt-get install fcitx-googlepinyin 
sudo apt-get install fcitx-sunpinyin 
sudo apt-get install fcitx-module-cloudpinyin

最后还有一点想要说的就是,我们可以设置默认的输入法平台的。可通过系统设置里面的语言进行可视化设置。具体这里就不说了。


Ubuntu在用apt更新时提示“无法获取排他锁”解决方法

有些时候,我们在用Ubuntu装软件,更新时会提示无法获取排他锁,但我们可能并没有进行可见的更新操作。

引起这样的原因有很多,例如有上次进行系统更新时出错了,引致系统的更新索引破损了等,又或者是apt没有正常工作了。

在甚至连重启都没办法修复的情况下,可以试试以下两个方法。

方法一:
这个方法假定是apt出错了,因此可以尝试找到apt的pid,再用kill指令把它强制关掉:

sudo ps -aux

找到输出中形如以下的行

root      4999  0.0  1.0  18204 15504 ?        SN   04:02   0:00 apt-get -qq -d

最后这里写着apt-get,可确定是由apt产生的线程,因此用kill指令后跟它的pid将它强制关掉

sudo kill  4999

这时候就可以解决apt占用排他锁的问题了。

但有时候,占用锁的可能并不是apt,也就是上面的ps指令中并没有apt的信息,这时候我们可以删除锁的文件来强制解除锁

利用rm指令删除以下两个文件

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

这时候无论是线程正在占用锁,也会被解除锁定,这种方法较为暴力,可能会对系统造成损害。因此记得要启动软件更新管理器,启动管理器后,按检查,它就会自动检查索引什么的完整性,并提示需要进行索引的修复工作。

2012年7月13日星期五

Ubuntu下的Gimp 2.8 多种安装方法

来到Linux,Photoshop已经没了,那要怎么进行图像处理呢?比较出名而且好用的就是Gimp了。

ubuntu软件中心上也有Gimp的下载,只要搜索一下,马上就可以找到,再点击一下安装,等待一段时间就安装完毕了。

可惜,在ubuntu官方软件源上的Gimp版本只是2.6的,而现在Gimp已经更新到2.8了,界面功能有了很大的变化,但因为ubuntu的祖宗debian一直还没把2.8打包,所以ubuntu也就只能顺势退后了。据说12.10会默认带Gimp2.8。

但是对我来说,新的东西是想着要尽快尝试的。幸好,虽然官方没有更新,但是还是有其他PPA可以使用的,可以通过一下指令添加Gimp 2.8的PPA:

sudo add-apt-repository ppa:otto-kesselgulasch/gimp

再执行一下指令进行安装或更新Gimp

sudo apt-get update && sudo apt-get install gimp

同样,很快地,就可以安装好最新版的Gimp 2.8了。

但我想,之前一直对于linux的手动编译过程不熟悉,也懒于使用,所以我想,我能不能手动编译gimp 2.8,并安装到自己的系统上呢

因此我打开了Gimp的官网,下载了源代码,尝试自己安装Gimp了。

首先去官网下载源代码:

Gimp官网:http://www.gimp.org/
最新2.8版源码下载地址:ftp://ftp.gimp.org/pub/gimp/v2.8/gimp-2.8.0.tar.bz2

源码不大,才18M大小,很快就下载完了,接着尝试解开压缩包,发现里面有一个INSTALL文件,是软件安装指南来的,哈哈!这下心里有底了。



其实那个INSTALL安装说明文件除了用英文写的以外,其他都已经说得很详细了,基本上每一步怎么做,为什么都说得很清楚。

在这里我主要总结一下,并且做做翻译吧。

在INSTALL文件里面,在介绍安装程序之前,有一段很重要而且很长的内容,就是Gimp依赖或可选包的相关说明。并且给出了详细的说明每个包的作用,具体的内容我就不翻译了,但是我会给出每个包的属性和下载地址,大家可以根据INSTALL的说明选择是否安装,在此也奉劝大家,好好看看那个INSTALL文件。

为了方便起见,开始之前先作一点说明,下面除非特别指明,“直接用apt-get命令安装”的意思是用 “sudo apt-get install 包名 来安装。给出的地址也是它们项目的官方地址,可能会有源码或者是直接可用的DEB包下载。对于想深入学习编译或者经验丰富的人,可以尝试自己手动编译所有的包,反正我能用apt-get就用apt-get的,哈!

  1. pkg-config,依赖包,地址:http://www.freedesktop.org/software/pkgconfig/,可直接用apt-get命令安装。
  2. intltool,依赖包,地址:http://ftp.gnome.org/pub/gnome/sources/intltool/,可直接用apt-get命令安装。
  3. GEGL,依赖包,地址:http://gegl.org/,可直接用apt-get命令安装该包,注意包名一定要小写。但非常遗憾,官方源上面的版本并不合适源用于Gimp2.8的安装,因为Gimp2.8需求版本为0.2.0或以上,而官方源的仅仅是0.0.22版。因此必须要手动下来0.2.0的源码来下载并编译安装。
  4. BABL,依赖包,地址:http://gegl.org/babl/,这个包同样可以用apt-get命令安装,注意包名小写即可,但由于官方源的版本过久,必须要手动下载0.1.10来编译并安装。
  5. GTK+,依赖包,地址:ftp://ftp.gtk.org/,关于这个包的想特别说明一下,对于GImp来说,GTK+包是它的图形界面包,而GTK+包的安装就非常复杂,本身又依赖了好几个其他的包,要是每个包都要自己编译,那就非常麻烦了,还好Ubuntu伟大的apt-get为我们解决的不少的麻烦,我们可以通过用系列的apt-get命令来完成对gtk+包的安装,具体这里不详细说明,可以参考以下帖子Linux公社-Ubuntu下安装GTK+。不过这帖子是用于搭建GTK+开发环境的,装的包可要很多。要只是让Gimp运行起来并不需要这么多包。这里就靠大家自己判断哪些包需要安装了。
  6. cairo,依赖包,地址:http://www.cairographics.org/,可以用apt-get安装,注意包名为libcairo2-dev。
  7. PangoCairo,依赖包,地址:http://www.pango.org,这是linux系统用于渲染字体用的,它本身还依赖于FreeType2,Cairo和fontconfig三个包,而且据它官网所说,要手动编译这个包非常地困难,一般的linux系统都会自带这个包并用于渲染字体,所以应首先检查自己的系统是否具备这个包再考虑安装。
  8. dbus-glib,可选包,地址:http://dbus.freedesktop.org/releases/dbus-glib/,系统已自带,但落后于最新版本,有兴趣的可以自己手动下载源码并编译安装最新版本。
  9. lcms, libpng,libjpeg,libpoppler,libtiff,webkit,libmng,librsvg,libwmf,libz, libbzip2,libgs (Ghostscript),libaa,libjasper,都是可选包,都是一些各类图像存储文件处理包和一些附加程序,对于完善Gimp的功能非常有用,建议安装。但这里不一一列出地址了,可以考虑用apt-get或者新立得软件管理器来安装。
  10. 另外INSTALL文件还特别说明,请不要在你的系统内保留任何GTK+-2.X,jpeg等的包,否则可能影响到configure过程对于新版本包的寻找工作。
好了,到此,已经简单地介绍了INSTALL文件里所列出包的说明和一些个人的想法。下面开始介绍安装过程。

安装流程如下:

1.首先我们要解压下载回来的源代码压缩包,解压的位置不限


但需注意,要是下面你不指定Gimp的安装位置,默认就是安装在你源码所在的文件夹里面。

2.随后用终端进入到解压目录下执行以下命令来运行检测脚本

 ./configure

这个脚本的作用是用来检测你的系统是否具备Gimp工作所需的各种包,并且将Gimp调节到合适在你的系统上运行,而且这个configure文件有很多的选项可用,具体这里就不一一翻译了,可以参与INSTALL文件,里面有超详细的说明。这个过程也可以指定Gimp所安装的位置,通过“--frefix=路径名”参数来指定,例如:

./configure --prefix=/opt/gimp-2.8


有一点须注意的是,configure可能会报出各种各样的错误,必须要仔细阅读错误信息,一个一个排除问题,个人感觉最大困难也就是在这里,configure可能会不断地提示缺某个包,但是又不知道哪里可以找到相应包,因此只能通过google来寻找,寻找到后可能又需要自己的去编译和安装,结果又引发新一轮循环,甚至某个包的编译都会卡住很久很久。但这就是我们成长的基石所在,所以建议大家遇到问题不要马上就气馁,不妨静下心来,慢慢阅读错误信息,一步步排除问题。

另外有一些包是可以通过apt-get来安装的,可以先用新立得软件管理器查查是否有所需的包,这样就可以省去一些编译动作,加快效率。

通常,前面提到的包安装后,一般都不会再提出什么错误了。

到最后,configure成功后,会列出一个表,显示你具备哪些包,而哪些包又是没有的。这里提示的目的更多是可选包的提示,因为如果你依赖包没装好,是没可能condigure成功的。可以参考下图。



3.继续执行make指令进行编译

make


make过程根据电脑的性能不同可能会非常地漫长,我的电脑就长达5分钟。如果你的处理器是多核心的,则可以通过“-jx”参数来指定开启多少个线程来进行make操作。一般都是把x设置为处理器的实际核心数+1,以让处理器全速运行。这样可以极快地加快make过程,例如我的电脑设置后就可以从5分钟降到不需要1分钟。命令例子如下:

make -j5


这里顺带介绍一个技巧,有些时候,你可能已经曾经make过一遍了,但在这时候你想更改一些东西,例如说,上面说到的,在configure阶段,可以设置gimp的安装位置,现在你想改到另外一个地方,因此你重新configure一次了。并且顺理成章地,你再一次进行make操作,你甚至会发现,make操作快了很多,甚至不需要几秒。但这时候必需要注意,这是因为这次make操作重复利用了一些上次make操作产生的文件,以缩短make时间。但有些时候,这可能会影响到后面软件的make install操作报出一些奇怪的错误,因此建议在重新make之前先将之前的make产生的文件全部清理掉,可以通过调用“make clean”指令来达到目的。

make clean


make操作完成后并不会提示什么完成信息,因此只需要没有错误信息报出即可视为完成操作。


4.最后执行以下命令安装Gimp

make install


同样地,如果你不想等待时间过于漫长并且你的处理器是多核心的,则你可以通过添加“-jx”参数来指定开启多少个线程来进行该操作。时间将大大地缩短。而且这项操作也不会提示任何完成信息,只要没提示错误信息,则可视为操作完成。

在某些你指定的安装目录里,可能会提示你没有相应的权限进行写文件操作,因此你可以考虑在命令面前添加sudo来获取root权限进行操作。但在这时候安装完毕后,整个gimp文件夹是属于root用户的,你可能需要手动更改一下文件夹的拥有者。

sudo make install -j5

到这里,以上四步都通过后,那么恭喜你已经将gimp安装在你指定的位置或者源码所在的文件夹里了,在命令行上可以通过

你制定的安装目录或者源码所在目录/bin/gimp


来启动Gimp程序,执行该命令后,可以看到Gimp2.8新颖的启动界面了。


启动界面过去,终于,见到GImp程序界面了,感到非常的有成就感!但是不是说2.8是有一个单窗口模式的吗?实际上,我执意要Gimp2.8也是因为这个,我已经是一个windows的严重上瘾者,因此一直习惯了photoshop的单窗口多标签工作模式。经过了一番查找,原来是可以通过单选“菜单栏-窗口-单窗口模式”来开启Gimp的单工作模式的。现在,GImp2.8的大门终于为我而开了!


这里再介绍一种更简单的方法安装Gimp各类的依赖包,其实ubuntu的官方源里,就直接有Gimp依赖包的下载安装只需要通过以下命令,即可将Gimp的全部依赖包(甚至是Gimp所需的GTK+运行环境也一次搞定!)和大部分选项包一次性下载并安装好。这个包通常非常大,请耐心等待下载完成吧。

sudo apt-get build-dep gimp

不得不说这是一个非常方便的手段来进行gimp的依赖包配置,但由于官方源里面的BABL和GAGL都是不合适的Gimp2.8的旧版本包,因此对于BABL和GAGL都还是需要手动编译和安装的。

对于想在gnome panel里面可以方便地启动自己编译的Gimp的人,需要自己制作一个启动器,并且放入/usr/share/applications里即可在gnome panel上面搜索到gimp了。

UBuntu软件源添加及Ubuntu下Ubuntu Tweak的安装

Ubuntu Tweak是一个我很喜欢的Ubuntu系统设置软件,有点类似于Windows下的优化大师,可以很方便地对ubuntu系统进行系列的设置,还包含一些系统清理等小功能,非常好用。

ubuntu下的软件源就相当是软件仓库(通常是位于网络上,但也可以是其他任何的本地位置,CD,USB,移动硬盘等都可以),ubuntu本身有一个官方的软件库,主要是收录了一些系统纳入的软件和包及其更新还有系统的更新补丁等。

我们可以平时使用的软件中心来搜索软件也是通过检查软件源,生成一个列表,然后供我们搜索的。当需要下载软件时,也是通过这些软件源来下载的。

原则上任何人都可以自建软件源并发布到网上供他人下载,但是这当然也跟实际条件相关。但网络上已经有很多由第三方或者一些软件开发者自己维护的软件源可以供大家使用,在这里就不一一阐述了,毕竟这不是本文的重点。

ubuntu的软件库里默认并没有ubuntu tweak,具体原因我也不知道。但是我们可以通过手动添加ubuntu tweak的官方源来达到通过apt-get指令来安装和自动检查软件更新。

首先我们应该添加软件源,打开UBuntu的系统更新管理器


点击设置,还到其他软件选项卡


点击添加


输入Ubuntu Tweak的官方稳定版PPA地址

deb http://ppa.launchpad.net/tualatrix/ppa/ubuntu precise main

点击添加源完成添加工作,系统会自动完成安装包和Source两个地址的添加工作

随后在终端下执行apt-get命令获取UBuntu Tweak并且自动完成安装

sudo apt-get ubuntu-tewak

安装完成后就可以使用软件了,现在享受ubuntu tweak给你带来的方便快捷吧!

Ubuntu的AMD显卡驱动安装

虽然已经给自己的台式机安装了uBuntu很久了,但是没好好地用过,一直用windows,用uBuntu的时间基本都集中在笔记本上(笔记本上出现的问题也较多,哈!)

今天下定决心要把台式机的windows也打入冷宫!

进入了uBuntu,马上就来一个问题了,开机时进入系统前居然花屏一瞬间!怎么可能任由这种事情发生而不管呢?查看系统详细信息,发现显卡未被识别,怀疑是显卡的工作不正常导致的。

网上查了一下,发现AMD的显卡在linxu系统上使用起来要比N卡麻烦得多,首先驱动不像N卡那样是开源的,而它的驱动支持的Linux系统种类也有限,所以导致经常出现问题。

ubuntu系统就 因为AMD的驱动不是开源的,默认不用它,用其他大牛们自己开发的AMD开源驱动(但默认未加载)。

大牛们的工作固然很让人敬佩,但是貌似开源驱动都多多少少有各种各样的问题。这也可以理解的,毕竟开发一个显卡驱动谈何容易啊!相信假以时日,一定可以有一个成熟而且稳定的开源驱动用的!

鉴于现在我电脑的显卡工作温度非常地高,而且开机有问题,为了保护爱机,还是先用闭源驱动吧,下文就是介绍自己在安装AMD闭源驱动的过程。

现在开始吧!

安装AMD闭源驱动前需要首先准备一些库文件,直接利用ubuntu的apt-get功能获取就行了,简单快捷,包还蛮大的!

在终端执行以下命令:

sudo apt-get install build-essential cdbs fakeroot dh-make debhelper debconf libstdc++6 dkms libqtgui4 wget execstack libelfg0 dh-modaliases linux-headers-generic

首先去官网看看,查了一下,发现官网的有linux驱动的下载,在它说明的支持的系统上大大地写了一个ubuntu在上面,看到后不得不开心一下啊!

马上下载!

下载地址:http://www2.ati.com/drivers/linux/amd-driver-installer-12-6-x86.x86_64.run

这个是AMD-12.6-linux驱动-32位版,下载后对于.run文件需要修改文件权限添加运行权限。在终端执行以下命令:

chmod +x amd-driver-installer-12-6-x86.x86_64.run

接着需要创建.deb的安装包
sudo sh ./amd-driver-installer-12-1-x86.x86_64.run --buildpkg Ubuntu/oneiric

包生成就简单多了,直接安装包吧
sudo dpkg -i fglrx*.deb

还需要生成配置文件
sudo aticonfig --initial -f

防止配置未生效:
sudo aticonfig --input=/etc/X11/xorg.conf --tls=1

接着一定要重启电脑,让新驱动生效

接着就要检查,先测试一下帧速:

fgl_glxgears

还有安装硬件视频加速:

sudo apt-get install xvba-va-driver libva-glx1 vainfo

vainfo

安装窗口和特效管理器:

sudo apt-get install compizconfig-settings-manager

可以通过一下命令查看当前正在运行的显卡模式

aticonfig --pxl # 

通过以下命令修改显卡的工作模式,修改完毕后必需要重启电脑让设置生效

高性能模式

sudo aticonfig --px-dgpu   

节电模式

sudo aticonfig --px-igpu  

两个模式只能2选1

到此,AMD驱动的安装工作就结束了,以上东西都是在网上东搜西搜出来的。在此谢过所有参考过文章的作者!

最主要引用文档:ATI显卡菜鸟x86闭源帖

2012年7月12日星期四

ubuntu在右键菜单中添加打开终端快捷方式

在linux中经常用到的终端,在ubuntu中打开就比较麻烦了,需要先打开dash,在搜索终端或者terminal,在点选图标,如果幸运,或者可以直接按回车,但无论怎样,都感觉很麻烦啊!

要是可以在文件管理窗口的右键菜单中添加直接打开终端的快捷方式就好了!对于nautilus文件管理器来说,这个是完全可以实现的,因为该管理器支持脚本。

首先我们需要在nautilus检查脚本的地方添加一个脚本文件

首先在你喜欢的任何地方新建一个空白文档,例如桌面上,名字是任意的,但是这个名字最终将会在你的右键菜单上显示出来

然后打开文档,把以下我从google上找到的代码复制进去
#!/bin/bash
#
# This script opens a gnome-terminal in the directory you select.
#
# Distributed under the terms of GNU GPL version 2 or later
#
# Install in ~/.gnome2/nautilus-scripts or ~/Nautilus/scripts
# You need to be running Nautilus 1.0.3+ to use scripts.

# When a directory is selected, go there. Otherwise go to current
# directory. If more than one directory is selected, show error.
if [ -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
set $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
if [ $# -eq 1 ]; then
destination="$1"
# Go to file's directory if it's a file
if [ ! -d "$destination" ]; then
destination="`dirname "$destination"`"
fi
else
zenity --error --title="Error - Open terminal here" \
--text="You can only select one directory."
exit 1
fi
else
destination="`echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed 's/^file:\/\///'`"
fi

# It's only possible to go to local directories
if [ -n "`echo "$destination" | grep '^[a-zA-Z0-9]\+:'`" ]; then
zenity --error --title="Error - Open terminal here" \
--text="Only local directories can be used."
exit 1
fi

cd "$destination"
exec x-terminal-emulator

保存文档,再在终端进入到你新建文档的地方,并且执行以下命令:

sudo chmod +x 你的文档名
sudo cp 你的文档名   ~/.gnome2/nautilus-scripts

好,完成了,以后你可以直接在文件管理器上直接右键进入终端了,而且还很智能识别出当前文件夹目录。

对于动脚本语言的人,其实还可以写很多其他功能,并且添加进入,例如修改权限等,暂时我还不懂脚本语言呢,有什么需要的功能以后再添加吧

Ubuntu更新ibus至最新版本及设置ibus具体输入法的方法

ibus是一个linux下的输入法平台,可供其他开发者把自己开发的输入法加到ibus平台上,只要ibus能够支持目标系统上,那么开发者的输入法也可以支持目标系统了。ibus相当于一个中间件,这是个人的理解。

ubuntn自带的ibus输入法平台版本很低,落后了ibus的官方版本很多,对于我这种喜欢尝试新事物的人来说,怎么可以容忍它发生呢!

对于ubuntu来说,其实更新的方法也很简单,只需要恰当地添加一些软件更新源,然后检查更新就行了

首先我们添加一个源,这个源是由ibus的开发者自己维护的,因此版本总是最新的
在终端下输入执行以下命令:

sudo add-apt-repository ppa:shawn-p-huang/ppa

一路yes添加成功后

执行以下命令告诉系统去更新软件

sudo apt-get update
sudo apt-get dist-upgrade

好,这时候,你就可以拥有最新版本的ibus了

还有一个问题,平常我们可以通过在桌面的状态栏上右键ibus的图标进入ibus的设置面板,但总感觉设置的项也太少了吧?其实还可以针对不同的输入法进行设置的,下面以sunpinyin为例进行说明

在终端上输入以下命令(假设你已经安装sunpinying):

/usr/lib/ibus-sunpinyin/ibus-setup-sunpinyin

 可以发现已经打开了sunpinyin的设置界面,进行更多详细具体的输入法设置,换页键的设置也在里面!

其实对于ibus不同的输入法,它在系统里的位置就在/usr/lib/ibus-输入法名字 这个文件夹里面,当想针对某一输入法进行具体设置时,不妨进去里面看它有没有图形设置程序或者一些设置文件,以达到进行输入法的设置。

2012年7月11日星期三

linux下使用SSD固态硬盘方式(收集整理)

在其他操作系统(或使用livecd)将SSD分区(注意对齐分区):

$sudo fdisk -l #查看SSD盘信息(下面$SSD代表磁盘代号(linux))

$sudo fdisk -H 32 -S 32 /dev/$SSD #扇区大小为4kB块的整数倍

# 注意,从第二个柱面开始,且注意分区大小以整数柱面数最好。


去掉日志:

$sudo tune2fs -O ^have_journal /dev/$SSD[n] #去掉SSD分区的日志


安装好linux系统后分区挂载设置:

添加挂载选项:discard,noatime,nodiratime

#注,data=writeback(去日志选项)开启会挂载错误,不要添加,使用上一步的设置。

#在加入discard(trim功能)之前,先看一下SSD是否支持:

$sudo hdparm -I /dev/$SSD #输出的信息里有TRIM字样


减少磁盘写入(如果内存够大的话):

在文件/etc/fstab里添加:

none /tmp tmpfs defaults 0 0

none /var/tmp tmpfs defaults 0 0

none /var/log tmpfs defaults 0 0

#注,由于/var/log中有一些目录故要在开机时建立,在/etc/rc.local里的exit 0行前加入:

for dir in [log中的目录列表,空格间隔]

do

if [ ! -e /var/log/$dir ]

then

mkdir /var/log/$dir

fi

done

将交换空间的使用率降低。在/etc/sysctl.conf里加上:

vm.swappiness = 0


磁盘I/O调度:

在/etc/rc.local里的exit 0 行前加上:

echo deadline > “/sys/block/$SSD/queue/scheduler”

echo 1 > “/sys/block/$SSD/queue/iosched/fifo_batch”

Ubuntu系统"正在等待jockey-backend退出"导致无法进行系统更新的问题解决

    好吧,今晚的第三个问题,安装好Ubunru,并且成功进入系统后,尝试更新系统,但是却总是提示等待中。

    查看Ubuntu的软件中心,发现有一个任务正在进行中,它的描述就是“正在等待jockey-backend退出”,然后可恶地,它的进度条却一直不动了,导致无法进行任何系统更新的相关操作。

    这个jockey-backend究竟是什么呢?其实它是一个用于安装第三方驱动的工具,如果你的电脑用的硬件里面需要用到一些第三方的驱动,则需要用到它,通常在刚安装完系统后,系统都会帮你安装驱动的,然后它就出现了,然后问题自然而然地就来了,虽然不清楚触发问题的条件,但是解决方法还是被我找到了。

    解决方法有两种:
    方法一:
    可以直接重启系统,则在系统第二次启动的时候不会再自动启动这个工具,因为驱动已经安装好了,这时候它也不会再阻塞系统更新了。这种方法比较直接简单。

    方法二:
    这个方法就是手动结束掉这个工具的线程,既然它不能自己关闭,那我们就亲手灭了它吧!还有一个就是,由于我刚装完系统,而Gurb是有问题的,是手动指定启动盘临时进来的系统,要我再重启一起再手动指定实在太麻烦了,因此我选择了这个方法 :)
    打开终端并且执行以下命令:
1) 首先切换为根用户
sudo -i

2) 检查 jockey 工具的线程ID
ps -e | grep jockey

3)输出中有这么一行,记住那个前面的ID号(1974)


1974 ? 0 00:00:00 jockey-backkend

4)执行kill命令去关闭线程,其中1974为上面看到的线程号

sudo kill -9 1974

    好了,现在应该可以发现jockey线程已经被关闭了,可以再执行第二步的指令去检查,系统也可以进行更新操作了

参考文章:http://naveenubuntu.blogspot.com/2011/09/waiting-for-jockey-backend-to-exit.html

Ubuntu /boot 挂载在SSD 上Grub不能正常启动的解决方法

今晚刚重装了Ubuntu,随之而来另外一个问题就是,要是把/boot挂载在SSD上,则会导致Grub启动时找不到相应Device的问题,然后就进入Grub rescue了。

其实在这种情况下还是可以手动设置启动设备,进入Ubuntu的

首先你需要输入”ls“命令查看当前系统分区,这时候会出现你电脑硬盘的分区信息,形式如下

(hd0) (hd0,msdos5) (hd0,msdos1) (hd1) (hd1,msdo1)

以上就是分区信息,有上面的msdos5有可能是单独的数字"0,1,2,5,6...."等,具体为什么暂未明白

必须要从以上的分区信息找到你挂载/boot的地方,例如我的电脑/boot就是挂载在(hd1,msdo1)上的

这时候输入"set"命令,会出现你的一些设置信息,形如下:

prefix=(hd0,1)/boot/grub
root=hd0, 1

很明显,之所以找不到设备是由于我的/boot是在(hd1,msdo1)上的,而它却尝试从(hd0,1)启动我的系统,当然不行啊!因此我分别输入以下两个命令


prefix=(hd1,msdo1)/boot/grub
root=hd1,msdo1

这时候再次输入set命令可以看到信息已经更改过来了

再调用如下命令:

grub rescue>insmod /boot/grub/normal.mod

看到"grub rescus>" 由灰色变成白色了,这表示normal.mod文件已经被正确加载了

然后再次输入"normal"命令可以看到系统已经正确启动了。

这时候进入系统,但grub依然未修复好,因为下次启动系统,又会提示找不到设备了,虽然网上说可以通过一系列指令修复grub,详细参考一下网页:

但是对我无效,于是我只能尝试马上更新我的Ubuntu,更新过程中更新了内核,于是顺带地,它自然地帮我重装Grub并修复了问题了。

其实我发现,如果安装系统的时候选择安装过程中立即下载更新包并更新系统,则可避免这个问题,看来Ubuntu对于各类硬件的支持一直是在不断强化中的

笔记本Ubuntu Live USB 安装ubuntu系统的问题及其解决


用了ubuntu 12.04一段时间,总体来说是真的很爽,系统加载,启动都非常快,作为一位windows深度重症者和linux初学者,遇到的问题真的好多啊!


从我最重视的编程环境配置,到各类常用软件的使用,系统的配置,都让我留了一把又一把的汗,但是整过过程下来,我体会最深刻的一点就是:“原来计算机世界还可以这样运作的!"


但是经过一段时间的折腾,系统已经被我不伦不类了,。由于我经常需要进行程序开发,而系统的状态已经开始影响到我的主要任务!而问题又太多没办法一一排除(经常提示内部错误,我自身暂时也没能力去解决那些问题)。


今天决定要重装笔记本的系统,然后,一个第一次用Ubuntu Live USB安装Ubuntu系统时出现过的问题又重现了,当然,今次我绝不会放过把这个问题记录下来的机会!


问题是这样的,在台式机上用UltraISO把Ubuntu的Live CD镜像刻录进去U盘后,尝试让笔记本从U盘引导启动U盘上的Ubuntu,但这时候引导会停到Syslinux上,界面全黑,而且只留有


Start booting from USB device...


SYSLINUX 3.84 2009-12-18 EBIOS Copyright............(后省)



无论重启多少次都会停在这里面,个人感觉应该是SYSLINUX的问题,然后向伟大的Google问了一下SYSLINUX是什么

   
原来syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。
 
更详细的信息可以参考一下百度百科的介绍:http://baike.baidu.com/view/3867652.htm
   
因此受到启发是不是SYSLINUX对于我笔记本的SSD支持不太好所致,再一次地,问了Google,发觉原来只要把SYSLINUX的设置文件稍微改动一下就可以了
   
解决办法很简单,打开U盘的根目录,修改/syslinux/syslinux.cfg文件, 将default vesamenu.c32这句话注释掉即可,即:


default vesamenu.c32
更改为# default vesamenu.c32

重启,将U盘重新插进笔记本,启动U盘成功!非常开心!
 
还是不满足就这样解决问题,又查了一下究竟这个命令是干什么的,在百度里面看到:

DEFAULT command【默认命令】
SYSLINUX启动时默认执行的命令项——当用户没有进行选择时。
如果没有配置文件存在,或在配置文件没有设置默认项时,默认是启动名为“linux”的   内核,不会添加其它的选项(参数)。
例如:可以用于设置所要加载的菜单模块default vesamenu.c32
   
所以可以发现,其实就是SYSLINUX启动过程中执行到 default vesamenu.c32 命令启动所有菜单项时出现了问题,现在注释掉后,就直接启动内核了,然后进入U盘里面的LIVE 系统了。

个人的小小技术博客开张了

从今天起,我的第一个计算机技术博客开张了,

说是技术博客,其实我也只是一个小小技术学习爱好者,

所以这博客主要是记录一些自己在学习和探讨各类计算机技术的问题,看法和经验。

不过第一次开博客,很多东西都不清楚,而且貌似谷歌这个博客系统很强大,几乎所有东西都可以自定义,这里还有很多东西值得我去学呢

博客界面会慢慢尝试修改的

好吧,就这样先吧。