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给你带来的方便快捷吧!