tmux attach提示“no sessions”的解决办法

tmux是GNU screen的替代工具,比screen更加强大,使用也更方便。Easwy使用tmux已经有一段时间了,今天遇到了一个奇怪的问题,tmux还在正常运行,但使用命令”tmux attach -d”却提示:

no sessions

在网上搜索了一下,解决方法是给tmux发送信号10,让tmux重新生成它的socket,命令如下:

$ killall -10 tmux

用这种方法可以避免重启tmux会话带来的麻烦。

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/tmux-no-sessions/

文章的脚注信息由WordPress的wp-posturl插件自动生成

升级Ubuntu 12.04 LTS到14.04 LTS

虽然Ubuntu 12.04 LTS的支持一直到2017年,不过升级到今年4月新发布的14.04 LTS仍然具有吸引力,因为可以使用更多最新的软件。

在升级之前,需要保证已经安装了Ubuntu 12.04 LTS的所有更新。只需打开你的Update Manager并更新所有软件即可。

接下来,打开一个终端窗口,输入如下命令:

sudo update-manager -d

运行完后,弹出的Update Manager窗口多了一个按钮:“升级到14.04 LTS”,点此按钮并按提示操作即可。

参考文档:

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/upgrade-ubuntu-14-04-12-04/

文章的脚注信息由WordPress的wp-posturl插件自动生成

Practical Vim中文版 -《Vim实用技巧》已出版

车文隆与我合译的《Vim实用技巧》一书已由人民邮电出版社出版,本书的英文书名是 Practical Vim,原书作者是Drew Neil。这本书在Amazon网站上的评分是五颗星,是关于Vim的一本很好的书。

这本书在2014年5月已经正式出版了,但由于种种原因,我直到上周末才收到样书。拿到样书之后,第一时间翻阅了一下,书的纸质和印刷都相当不错,是我喜欢的类型。至于内容和版式,我早已熟悉的不能再熟了,不过看纸质版的感觉与看电子版很是不同,多了一份厚重感和书香气。

车文隆与我的分工如下:

  1. 车文隆负责:序、第10章到第21章、附录A
  2. Easwy负责:读者对本书的评论、自序、致谢、写作体例说明、第1章到第9章

作为本书的译者之一,我既逐字逐句翻译了部分内容,也曾多次对本书的内容及排版进行过审阅,因此我有充分的信心向读者推荐本书。对Vim用户而言,无论是刚接触 Vim 的初学者还是对 Vim 有了一定了解的中级用户,阅读本书都是学习 Vim 思维方式的很好途径。

因为我曾经对本书的内容和排版进行过多次细致的审阅,所以自信不会像某些书籍那样错误连篇,不过任何软件都有bug,任何书也都会有错误,如果读者发现书中的错误,请在《Vim实用技巧》勘误表中留言,我会一一记录下来,在本书再版时改正。

感谢本书的责任编辑陈冀康!也感谢另外一位译者车文隆,我们一起为这本书度过了不知多少个的日日夜夜!

感谢大家的支持!Happy Viming!

PS,本书在下列网站有售:

翻看了上述网站上的读者评论,大部分读者的反映都很好,也有几个读者吐槽书的纸质和价格,不过幸好没读者抱怨翻译质量,这就是对我们最好的评价了。 :-)

2015/04/28更新: 本书随书的源文件可以在这里下载,大家可以参照原书中的例子自己操作一下,以加深理解。

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/practical-vim-chinese-version/

文章的脚注信息由WordPress的wp-posturl插件自动生成

在LVM分区上安装Ubuntu 12.04

今天在工作站上安装了Ubuntu 12.04 LTS版,安装后发现Ubuntu缺省并不使用LVM分区,而是把所有内容都安装在了根分区,个人还是习惯于将操作系统和用户数据分别放在不同的分区上,以保证数据的安全。因为LVM能够提供更加灵活的磁盘管理功能,因此打算把Ubuntu 12.04安装在LVM分区上。

关于LVM分区的更多介绍,可以参见易水博客上的Linux逻辑卷管理器(LVM)学习笔记

由于Ubuntu 12.04缺省并不支持LVM,需要采用特殊的安装步骤才能使用LVM,因此在网上找了一下Ubuntu社区给出的解决办法,具体方法如下。

1. 使用光盘启动Ubuntu

首先设置计算机BIOS,使用光盘引导,然后使用光盘启动Ubuntu Live。进入图形界面后,选择“Try Ubuntu”。

2. 安装lvm2

首先打开一个终端,运行如下命令安装lvm2:
sudo apt-get -y install lvm2

3. 设置硬盘分区

接下来需要设置硬盘分区。我的分区基本与参考文档中的分区是一样的,因此借用了它的操作步骤:在/dev/sda上分两个分区,其中/dev/sda1用来安装/boot,而/dev/sda2则用来创建LVM分区。需要注意的一点是,需要把/dev/sda2的分区类型设置为0x8e,表明这是一个Linux LVM分区。
ubuntu@ubuntu:~$ sudo fdisk /dev/sda
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x568311d6.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-5221, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-5221, default 5221): +1G

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (133-5221, default 133):
Using default value 133
Last cylinder, +cylinders or +size{K,M,G} (133-5221, default 5221):
Using default value 5221

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e

Changed system type of partition 2 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x568311d6

Device Boot Start End Blocks Id System
/dev/sda1 1 132 1060258+ 83 Linux
/dev/sda2 133 5221 40877392+ 8e Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

4. 创建LVM分区

接下来就是创建LVM分区,这里所提到的一些概念,可以参考EaswyLinux逻辑卷管理器(LVM)学习笔记

首先创建一个物理卷(PV):
sudo pvcreate /dev/sda2

然后在此物理卷上创建一个逻辑卷组(LVG):
sudo vgcreate sysvg /dev/sda2

最后在卷组上划分逻辑卷(LV):
sudo lvcreate -L 1G -n lvswap sysvg
sudo lvcreate -L 20G -n lvroot sysvg
sudo lvcreate -L 15G -n lvhome sysvg

这里创建了三个逻辑卷,分别用来安装交换分区(lvswap)、根文件系统(lvroot)以及home目录(lvhome)。
我一般会在卷组中预留一些空闲空间,这样一旦某个分区大小不太合适时,就可以随时调整。

5. 安装Ubuntu

创建完LVM分区后,就可以双击Ubuntu Live桌面上的“Install Ubuntu 12.04”,开始安装Ubuntu。在分配磁盘分区时,选择“Something else”,以便使用我们创建的LVM分区。具体操作可以看参考文档中的屏幕截图。
选择好安装分区后,就可以开始安装Ubuntu了。

6. 把lvm2安装到磁盘上的Ubuntu中

在Ubuntu安装完后,会提示你重启系统,但此时还不能重启系统,因为Ubuntu缺省不会安装lvm2包,此时重启会导致系统引导不起来。
我们需要先切换到磁盘上新安装的Ubuntu文件系统中:
sudo mount /dev/mapper/sysvg-lvroot /mnt
sudo mount /dev/mapper/sysvg-lvhome /mnt/home/
sudo mount /dev/sda1 /mnt/boot
sudo chroot /mnt

这几条命令会挂载各分区到Ubuntu Live的/mnt分区,然后chroot到/mnt。
现在我们已经位于新安装的Ubuntu文件系统中了,运行如下命令配置kernel module:
echo "dm-mod" >> /etc/modules
echo "dm-snapshot" >> /etc/modules
echo "dm-mirror" >> /etc/modules
echo "dm-mod" >> /etc/initramfs-tools/modules
echo "dm-snapshot" >> /etc/initramfs-tools/modules
echo "dm-mirror" >> /etc/initramfs-tools/modules

然后安装lvm2包:
root@ubuntu:/# apt-get -y install lvm2

7. 大功告成!

现在你可以重启了,记得把光盘拿出来。重启后就会进入我们的新安装的Ubuntu了。此时的Ubuntu,已经安装在了LVM分区上。

8. 参考文档

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/install-ubuntu-12-04-on-lvm-partition/

文章的脚注信息由WordPress的wp-posturl插件自动生成

升级及迁移svn本地版本库

Subversion有一点很麻烦,每次版本升级时格式都会变,导致本地版本库不能用。这几天公司的版本库由1.6升级到了1.7,并且版本库的URL也发生了变化。以前遇到这种情况,一般都会删除本地版本库,然后再重新check out。不过因为版本库比较大,check out一次需要很长时间,于是在网上查了一下,找到一种简单的解决办法。

首先要解决svn版本升级的格式不兼容问题,如果用1.7版本的svn在1.6版生成的work copy上使用命令,会遇到如下错误:

$ svn info
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy '/home/easwy/dev' is too old (format 10, created by Subversion 1.6)

此时可以使用svn upgrade命令,对本地版本库的格式升级:

$ svn upgrade
Upgraded '.'
Upgraded 'scripts'
Upgraded 'merge-info'
Upgraded 'merge-log'
......

因为服务器的地址也变化了,所以升级完本地版本库后,需要把版本库的地址迁移到新地址上去,可以使用以下命令:

$ svn switch --relocate http://server-url/svn/dev http://new-server-url/svn/repos/dev

此命令执行完后,再用svn info看一次,会发现本地版本库的地址已经切换到新的服务器地址了。
这种操作方式,比重新check out要方便太多了!

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/svn-upgrade-and-switch/

文章的脚注信息由WordPress的wp-posturl插件自动生成

Easwy的vim配置共享:包括.vimrc及整个.vim目录

刚才有网友来信询问我的vim配置,我在很久以前已经把我的所有vim配置上传到github了,有兴趣的朋友可以在Easwy的Github共享找到我最新的.vimrc和整个的.vim目录。

你可以点此下载Easwy的vimrc,如果你了解git,你也可以使用git命令下载整个版本历史:

git clone https://github.com/easwy/share.git

用这种方式,你可以随时跟踪我的最新修改,或者把你对vimrc的改变通知我。

Happy Vimming!

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/easwy-vimrc-and-vim-settings/

文章的脚注信息由WordPress的wp-posturl插件自动生成

在CentOS 5上安装Ubuntu KVM虚拟机

Linux下免费的虚拟化技术主要有KVM和XEN两种。KVM已经合入了Linux标准内核,也获得了诸如RedHat RHEL、Ubuntu这样的Linux发行版的支持,可以预见在未来KVM应该会成为Linux虚拟化技术的主流。只是KVM需要硬件虚拟化技术的支持,如果你的CPU不支持硬件虚拟化技术,那么只能使用XEN。

本文记录了Easwy在CentOS 5.7上安装Ubuntu KVM虚拟机的过程。

  1. 环境检查

    首先需要检查一下你的CPU是否支持硬件虚拟化技术(Hardware Vitualization):

    egrep '(vmx|svm)' --color=always /proc/cpuinfo 

    如果在你的计算机上没有任何输出,那么说明你的CPU不支持硬件虚拟化技术,也就无法使用KVM。

    另外需要注意的是,在CentOS 5.4版本以后,只有64位的CentOS才支持KVM,具体原因不清楚,所以如果你是32位的CentOS,暂时也无法使用KVM。

  2. 安装KVM

    检查完环境后,我们开始安装并激活KVM。

    首先,将SELinux的配置更改为Permissive,因为virt-install不支持SELinux为disable

    [root@srv-easwy ~]# system-config-securitylevel 

    然后安装kvm及其它虚拟化相关的软件:

    [root@srv-easwy ~]# yum install kvm kmod-kvm libvirt python-virtinst virt-manager

    接下来需要重启系统,在启动完成后,你应该可以看到KVM内核模块已经被加载了:

    [root@srv-easwy ~]# lsmod |grep kvm
    kvm_intel              85256  1
    kvm                   224800  2 ksm,kvm_intel 

    可以通过下面的命令看看KVM是不是真正运行了:

    [root@srv-easwy ~]# virsh -c qemu:///system list
    Id Name                 State
    ----------------------------------
    
    [root@srv-easwy ~]# 
  3. 配置网络

    现在配置一个网桥,以便虚拟机可以访问网络。首先安装所需的工具:

    [root@srv-easwy ~]# yum install bridge-utils 

    新创建一个文件/etc/sysconfig/network-scripts/ifcfg-br0,其内容为:

    DEVICE=br0
    TYPE=Bridge
    BOOTPROTO=dhcp
    ONBOOT=yes 

    上面的文件配置此网桥以DHCP方式获取IP地址。接下来修改原来的网卡配置/etc/sysconfig/network-scripts/ifcfg-eth0,修改为:

    DEVICE=eth0
    HWADDR=B8:AC:6F:89:10:76
    ONBOOT=yes
    BRIDGE=br0 

    然后重启网络配置,查看一下:

    [root@srv-easwy ~]# /etc/init.d/network restart
    [root@srv-easwy ~]# ifconfig
    br0       Link encap:Ethernet  HWaddr B8:AC:6F:89:10:76
              inet addr:172.23.5.50  Bcast:172.23.5.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:3242738 errors:0 dropped:0 overruns:0 frame:0
              TX packets:702638 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:1057883287 (1008.8 MiB)  TX bytes:448735998 (427.9 MiB)
    
    eth0      Link encap:Ethernet  HWaddr B8:AC:6F:89:10:76
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:3445641 errors:0 dropped:0 overruns:0 frame:93
              TX packets:670754 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:1201230368 (1.1 GiB)  TX bytes:239453000 (228.3 MiB)
              Interrupt:177 Memory:f3de0000-f3df0000
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:63582 errors:0 dropped:0 overruns:0 frame:0
              TX packets:63582 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:154537675 (147.3 MiB)  TX bytes:154537675 (147.3 MiB)
    
    virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1797 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 b)  TX bytes:470443 (459.4 KiB)
          
  4. 安装虚拟机

    基于磁盘逻辑卷管理(LVM)的虚拟机会拥有较好的磁盘I/O性能,所以在此处Easwy安装了基于LVM的虚拟机。如果你对LVM并不熟悉,可以参考我的Linux逻辑卷管理器(LVM)学习笔记

    Easwy在安装时已经在逻辑卷组中预留了部分未用空间,所以此处直接在卷组vg0中创建一个逻辑卷ubuntu,并分配了332G的空间:

    [root@srv-easwy ~]# lvcreate -L32G -n ubuntu vg0 

    接下来使用virt-install安装Ubuntu虚拟机,在此处直接使用Ubuntu的ISO文件做为源,将其安装到新创建的逻辑卷/dev/vg0/ubuntu中:

    [root@srv-easwy ~]# virt-install --connect qemu:///system -n ubuntu -r 1024 --vcpus=2 -f /dev/vg0/ubuntu -c ~/Download/ubuntu/ubuntu-10.04.3-desktop-amd64.iso --vnc --os-type linux --os-variant generic26 --accelerate --network=bridge:br0 --hvm --noautoconsole

    执行完此命令后,KVM虚拟机会使用Ubuntu的ISO文件启动,我们需要启动virt-manager,连接到此虚拟机,继续完成安装过程。这和安装真正的Linux操作系统完全一样,不再赘述。

现在,基本KVM的Ubuntu虚拟机就完全运行起来了。如果你对此还有疑问,欢迎留言。另外,参考文档中的链接也许对你也很有帮助。

更多内容,请阅读易水博客上的其它文章。

[ 参考文档 ]

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/centos-kvm-virtulization-ubuntu-guest/

文章的脚注信息由WordPress的wp-posturl插件自动生成

Linux逻辑卷管理器(LVM)学习笔记

通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O操作的性能,以及提供冗余保护,它的快照功能允许用户对逻辑卷进行实时的备份。

对一般用户来讲,使用最多的是动态调整文件系统大小的功能。这样,你在分区时就不必为如何设置分区的大小而烦恼,只要在硬盘中预留出部分空闲空间,然后根据系统的使用情况,动态调整分区大小。

以下内容总结了Easwy对于LVM的理解。

在LVM中,主要有三个概念:

  • 物理卷(Physical Volume, PV): 物理卷可以是一个磁盘,也可以是磁盘中的一个分区。它为LVM提供了存储介质。
  • 逻辑卷组(Logical Volume Group, LVG): 可以把逻辑卷组想象成一个存储池,或者是逻辑硬盘。物理卷与物理卷在硬件上可以是不连续的,但把多个物理卷加入逻辑卷组后,就可以把这个逻辑卷组看成一个存储空间连续的逻辑硬盘,在这块硬盘上,可以创建多个逻辑卷(LV)。
  • 逻辑卷(Logical Volume, LV): 可以将卷组划分成若干个逻辑卷,相当于在逻辑硬盘上划分出几个逻辑分区,每个逻辑分区上都可以创建具体的文件系统。

到这里我们可以看出,原本是直接在硬盘上创建分区,然后在分区上创建文件系统。使用了LVM后,在其中插入一个逻辑层,相当于是在一块逻辑硬盘上创建逻辑分区,然后在逻辑分区上创建文件系统。

新插入一个逻辑层,对单个硬盘的读写会有一定的性能损失,但其带来的好处是巨大的。首先,逻辑分区大小不再受硬盘实际大小的限制,它可以扩展到几块硬盘上;其次,逻辑分区可以很方便的做调整大小、备份等维护操作;而且,如果系统中存在多块硬盘,通过设置逻辑卷到物理卷的映射关系(采用LVM striped mapping),可以提高I/O的读写性能,因为此时的读写是在多块硬盘上并发进行的,比对单个硬盘的读写显然要快很多。

下面是一个LVM使用的例子:

Linux下逻辑卷管理器(LVM)示例
Linux下逻辑卷管理器(LVM)的一个例子

在图中有两块硬盘,其中硬盘1分了两个分区,/dev/sda1/dev/sda2,硬盘2没有创建分区。接下来在/dev/sda2/dev/sdb上创建物理卷,然后把这两个物理卷加入到逻辑卷组vg0中,现在,逻辑卷组vg0看起来像一块很大的逻辑硬盘,然后在其中创建两个逻辑卷/dev/vg0/lv0/dev/vg0/lv1

最后,分别在/dev/sda1/dev/vg0/lv0/dev/vg0/lv1上创建文件系统,并分别把它们挂载到文件系统树中。这样看上去,逻辑卷是不是很像是一个逻辑的分区?

在逻辑卷组vg0中,还预留有一部分空间未用,如果在使用中发现某个逻辑卷空间不够用了,可以在不停机的情况下,直接调整逻辑卷及其上的文件系统的大小。对服务器来讲,这是简单但非常有用的功能。

更多内容,请阅读易水博客上的其它文章。

[ 参考文档 ]

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/linux-lvm-learning-notes/

文章的脚注信息由WordPress的wp-posturl插件自动生成

在Ubuntu上编译vim 7.3

在Thinkpad T400上安装完Ubuntu 10.04 LTS后,就开始搭建Android开发环境,第一步当然是编译vim。

目前最新的vim版本是7.3,因为从vim 7.3开始已经换用Mercurial做为版本管理工具,我们在下载vim 7.3源代码前,先要安装Mercurial:

sudo aptitude install mercurial
cd ~
hg clone https://vim.googlecode.com/hg/ vim73

执行完上面的命令后,我们就取得了vim 7.3的最新代码,放在目录~/vim73中,接下来准备编译。在编译前,需要安装编译时需要的包,在Ubuntu上用如下命令:

sudo aptitude install xorg-dev libx11-dev libgtk2.0-dev libncurses5-dev 

上面是Easwy在编译前所安装的依赖文件。后来在一篇帖子中看到另一种方法安装依赖文件,可能更方便(未测试):

sudo aptitude install build-essential
sudo aptitude build-dep vim-gtk 

接下来修改~/vim73/src/Makefile,打开自己所需要的功能,Easwy打开了下面这些特性:

  • CONF_OPT_CSCOPE = –enable-cscope
  • CONF_OPT_MULTIBYTE = –enable-multibyte
  • CONF_OPT_INPUT = –enable-xim
  • CONF_OPT_OUTPUT = –enable-fontset
  • CONF_OPT_FEAT = –with-features=big
  • CONF_OPT_COMPBY = “–with-compiledby=Easwy Yang <easwy.mail@gmail.com>”

接下来编译安装:

cd ~/vim73/src
make && make install 

执行完后编译好的vim以及gvim就安装在/usr/local/bin目录中了。将此目录加入PATH即可。

Easwy在编译后,每次运行gvim都会提示:

Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
Error: Aborting: no fontset found 

后来在网上查了一下,是因为没有安装libgtk2.0-dev包造成后,安装此包再重新编译后问题解决。

如果你在编译gvim时遇到了问题,可以参考我以前写的一篇文章:vi/vim使用进阶: vim编译中遇到的问题及解决方法

最后,把我们编译的vim 7.3做为Ubuntu中的缺省编辑器,执行如下命令:

sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 50 --slave /usr/share/man/man1/editor.1.gz editor.1.gz /usr/local/man/man1/vim.1.gz
sudo update-alternatives --install /usr/bin/vi vi /usr/local/bin/vim 50 --slave /usr/share/man/man1/vi.1.gz vi.1.gz /usr/local/man/man1/vim.1.gz 

Happy viming!

更多内容,请阅读易水博客上的其它文章。

[ 参考文档 ]

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/compile-vim73-on-ubuntu/

文章的脚注信息由WordPress的wp-posturl插件自动生成

在Thinkpad T400上安装Ubuntu

一直以来,Easwy所使用的Linux发行版都是Debian。因为Easwy喜欢Debian上丰富的软件、便捷的安装/升级方式,以及它所代表的自由精神。前些天,Easwy预定了一部魅9手机,为了充分体验DIY的乐趣,Easwy决定自己为魅9手机编译一个ROM。因为魅9基于Android系统,为了编译Android,Easwy利用周末的时间在自己的Thinkpad T400 AA1上安装了Ubuntu 10.04 LTS版本,这篇文章做为安装Ubuntu的一个小结。

首先在Ubuntu官网上下载了Ubuntu 10.04 LTS Desktop版,刻录后使用光盘启动,我的Ubuntu之旅就开始。整个的安装过程很顺利,不得不说Ubuntu在易用性和用户界面方面下了很大的工夫,它的安装过程以及界面已经可以和Windows相媲美了。感谢Ubuntu把Linux从专业人士的工具变成了普通大众能接受的操作系统,相信在不远的将来,Linux在桌面领域会有更长足的进步。

安装完后,登录Gnome,有一种眼前一亮的感觉,曾几何时,Linux的图形界面已经做的美观如斯。并且现在Linux也非常的易用,已经不再需要费心的去安装/配置各种驱动。对Thinkpad T400的硬件,Ubuntu都能正确的识别出来:显卡(集成)正常、声卡正常、网卡以及无线网卡都可以正常工作,电源管理工作正常(能够正常待机)……

因为Ubuntu以Debian Unstable版本为基础,所以对于拥有Debian使用经验的Easwy来说有一种天然的熟悉感。在接下来的篇幅中,Easwy将简要介绍一下自己所做的一些配置。

[ sudo不需要输入密码 ]

Ubuntu缺省禁止root用户登录。在需要root权限执行命令时,用户需要使用sudo来执行相应的命令。为了在sudo时不需要输入密码,我们首先执行命令sudo visudo,这条命令会用缺省编辑器打开一个文件,找到下面这一行内容:

%admin ALL=(ALL) ALL 

将其改为:

%admin ALL=(ALL) NOPASSWD: ALL 

保存退出后,以后再使用sudo就不需要再输入密码了。

[ 修改更新源 ]

在Debian/Ubuntu中安装或升级软件时,都会自动从你配置的服务器上下载相应的软件,因此选择一个下载速度较快的源就非常重要。

Ubuntu中文Wiki上列出了国内用户常用的源,你可以为自己选择一个最快的源。使用文本编辑器打开文件/etc/apt/source.list,将你所用的源加进去就行了。在这里,Easwy所用的源是台湾的官方源:

$ sudo vi /etc/apt/source.list

# Add your source here...

deb http://tw.archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu lucid-security main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu lucid-backports main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu lucid-proposed main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu lucid-security main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu lucid-backports main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu lucid-proposed main restricted universe multiverse 

需要注意的是在添加源时,需要使用正确的版本名。上面源中的lucid就是Easwy所安装的10.04 LTS版本。可以在中文Wiki中找到你所用的版本名称。

配置Thinkpad的小红点

小红点是Thinkpad系列电脑的特色了,想让小红点在Ubuntu下正常工作,需要新建一个文件:

sudo vi /usr/lib/X11/xorg.conf.d/20-thinkpad.conf

# Add following lines...

Section "InputClass"
Identifier "Trackpoint Wheel Emulation"
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"
MatchDevicePath "/dev/input/event*"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "Emulate3Buttons" "false"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection 

然后重启一下电脑,小红点就可以正常工作了。 在Ubuntu 10.10版本中需要把文件保存为/usr/share/X11/xorg.conf.d/20-thinkpad.conf

至此,Easwy的Ubuntu环境就基本完成了。更多内容,请阅读易水博客上的其它文章。

[ 参考文档 ]

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/install-ubuntu-on-thinkpad-t400-aa1/

文章的脚注信息由WordPress的wp-posturl插件自动生成