Apr 17 2010

Chromium : Google chrome for linux

用了两天的 Chromium,也就是 Google chrome ,感觉在 linux 下面对字体的渲染比 Firefox 要好,在 Mint 8 下安装也是很简单的:

1. 添加源:

deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/chromium-daily/ppa/ubuntu karmic main

2. 添加 PGP key :

$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xfbef0d696de1c72ba5a835fe5a9bf3bb4e5e17b5

3. 安装

$ sudo apt-get update
$ sudo apt-get install chromium-browser

4. Enjoy ~


Apr 14 2010

Ubuntu:mount of filesystem failed

今天一开机,Mint 就黑屏,显示:

mount of filesystem failed
a maintenance shell will now be started.
Control-D will terminate this shell and re-try
root@mint:~#

后来查了一下,据说这是 an odd issue that rarely happens,不过解决方法也很简单:
首先列出 linux 的分区:

fdisk  -l

我的输出是这样的:

Disk /dev/sda: 80.0 GB, 80032038912 bytes
255 heads, 63 sectors/track, 9730 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xcf62cf62

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2805    22531131    7  HPFS/NTFS
/dev/sda2            2806        9730    55625062+   f  W95 Ext'd (LBA)
/dev/sda5            2806        5355    20482843+   7  HPFS/NTFS
/dev/sda6            5356        8160    22531131    7  HPFS/NTFS
/dev/sda7            8161        8344     1477948+  82  Linux swap / Solaris
/dev/sda8            8345        9001     5277321   83  Linux
/dev/sda9            9002        9730     5855661   83  Linux

可以看到 Linux 分区在 /dev/sda8 和 /dev/sda9 ,然后用下面的命令修复:

fsck.ext4 /dev/sda8
fsck.ext4 /dev/sda9

注意这是针对 ext4 文件系统的。


Apr 13 2010

Ubuntu 9.10 安装 R

1. 将源加入列表:

$ sudo echo "deb http://cran.csdb.cn/bin/linux/ubuntu karmic/" >> /etc/apt/sources.list

2. 验证:

$ sudo gpg --keyserver subkeys.pgp.net --recv-key E2A11821
$ sudo gpg -a --export E2A11821 | sudo apt-key add -
$ sudo apt-get update

3. 安装:

$ sudo apt-get install r-base

4. 运行:

$ R

即可进入 R 的交互式环境。


Apr 12 2010

Windows XP 硬盘安装 Ubuntu (Mint 8)

今天用自己的 Mint 8 换了 Lucid 的源,想升级到 Ubuntu 10.04 , 漫长升级的结果却是进不了系统~~ 只好重装我的Mint 8,由于不想刻盘,同时要使用 Windows XP,于是参照网上的一篇 文章,采用硬盘安装,综合起来步骤如下:

1.   把 LinuxMint-8.iso 放到 C:\ 下,用 WinRAR 将镜像里的 vmlinuz 和 initrd.lz 两个文件也直接解压到 C 盘的根目录。

2.  在 C 盘根目录下新建一个名为 menu.lst 的文件,内容是:

title Install Mint
root (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/LinuxMint-8.iso ro quiet splash
initrd /initrd.lz

3.  在 C:\boot.ini 文件中加入一行:c:\grldr=”GRUB”
例如添加之后我的 boot.ini 文件是这样的:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\GHLDR=一键GHOST v2009.09.09
C:\grldr="GRUB"

4.  下载 grldr 文件,放于 C 盘根目录。

在上述操作完成后,C 盘根目录下添加的文件有:

files in C

5. 重启后选择 GRUB,选择 Install Mint 选项即可进入 LiveCD 的安装界面,在正式进行安装前,应当运行以下命令:

sudo umount -l /isodevice

6. 在安装完以后,我发现原来的启动菜单消失了,只好重新找回来,由于 Ubuntu 9.10 已经开始采用GRUB 2 作为默认的引导程序,因此修复引导菜单也是很简单的,只要运行:

$sudo apt-get install grub2 grub-pc grub-common

这时 grub2 的安装程序会自动识别原来的 windows XP 并生成启动菜单,这一步骤显得相当的简单。今天得到的教训是最好不要直接升级版本,小心使用 apt-get dist-upgrade 命令~


Apr 10 2010

Ubuntu 固定 IP 地址(静态IP)

昨天架设了一个SVN服务器,但是 ubuntu 在默认情况下是以 DHCP 来动态获取 IP 地址的,而我需要一个静态的 IP。一开始是直接修改 /etc/network/interfaces 配置文件,但不知道由于什么原因,IP 固定的同时不能正常地连接网络,后来发现,通过图形化界面来设置也是很方便的。

简要的步骤如下:
1. 点击右下角的网络图标,依次:Edit Connections –> Wired –> Add –> IPV4 settings,将 Method 设为 Manual ,然后点 Add 添加静态地址:
step 1

2. 填上地址,掩码和网关的信息,以及DNS 服务器及search 的地址,点 Apply 即可。
step 2
在这里,最重要的地方当然是这些参数(如网关地址,DNS地址)是如何获取的,简单运行下面的命令即可找到答案:

$ ifconfig
$ route -n
$ vi /etc/resolv.conf

3. 运行下面的命令重启网络:

$ sudo /etc/init.d/networking restart

即可以获得一个静态的地址,以后每次开机本机地址都会固定为 59.64.158.225 了。


Apr 10 2010

Ubuntu apt-get 代理服务器设置

教育网内的源有限,常常不能更新访问一些国外网站资源,一些插件如 adobe-flash-plugin 就不能从官方源安装,每次都会提示超时错误。解决的方法也很简单: 在 /root/.bashrc 定义一个 http_proxy 变量:

$ sudo vi /root/.bashrc

添加以下内容:

http_proxy=http://username:password@host:port/
export http_proxy

然后:

$ sudo source /root/.bashrc

如果代理服务器有效,就可以通过代理来用 apt-get update  更新国外的源了。


Apr 9 2010

Ubuntu 配置 SVN 服务器

1. 安装 svn 和 apache2

$sudo apt-get install subversion
$sudo apt-get install libapache2-svn
$sudo apt-get install apache2

2. 将 /var/svn 作为版本控制的目录

$sudo svnadmin create /var/svn

3. 将这个目录的所有者改为 apache

$sudo chown -R www-data:www-data /var/svn

4. 修改 apache 的配置

sudo vi /etc/apache2/mods-available/dav_svn.conf

修改为:

<location /svn>
DAV svn
SVNPath /var/svn
AuthType Basic
AuthName “myproject subversion repository”
AuthUserFile /var/svn/conf/passwd
Require valid-user
</location>

5. 创建用户

$sudo htpasswd –c /var/svn/conf/passwd leeing

输入密码确定,就新建了一个用户。如果还要新增其它用户,去掉 -c 参数重复这个步骤。

6. 重启apache2 。

$sudo /etc/init.d/apache2 restart

这时可以打开 http://localhost/svn,输入用户名密码即可看到初始界面。
如果是在局域网内提供服务,可以将 localhost 改为本机地址,为了方便使用,可以设定静态的 IP 地址而不是通过 DHCP 来获取 IP 。

7. 遇到权限问题,可以为源目录加权限:

$sudo chmod o+rw -R /var/svn

在安装过程中,权限的配置很关键。


Apr 7 2010

Ubuntu 安装 iBus

Since Scim is not function well on my Linux desktop( I can’t switch to chinese input method sometimes), so I decide to switch the input method to iBus:

step 1 : First remove the scim installation, Modify the /etc/apt/sources.list (it seems that you can ignore this step, since iBus is in the official source now).

$sudo apt-get remove scim*
$sudo echo "deb http://ppa.launchpad.net/ibus-dev/ppa/ubuntu jaunty main" >> /etc/apt/sources.list #do this if necessary
$sudo apt-get update

step 2:Run the apt-get install command:

$sudo apt-get install ibus ibus-pinyin ibus-table-wubi ibus-gtk python-ibus ibus-table ibus-qt4

step 3: Switch the input method, let ibus be the default option:

$sudo im-switch -s ibus

step 4: Log out and then Enjoy it.


Mar 12 2010

JDK 和 GVIM 的字体 tips

在初安装时常要进行的字体和外观设置:

1. GVIM 如果想要每次打开都固定为自己设定的字体时,应当在 _vimrc 中加入相应的内容:

  • 打开vim,选一个喜欢的字体
  • 运行 :set guifont?
  • 记下vim返回的信息,如:guifont=新宋体:h12:cGB2312
  • 在_vimrc中写入一行:set guifont=新宋体:h12:cGB2312 (刚才记下的内容)

2. 而对于Java的Swing程序,默认的Look and Feel 比较丑陋,如果想尽可能与原生的windows外观相同,则可以:

在%JDK_HOME%/jdk_1.6.x/lib 下添加一个名为 swing.properties 的文件 ,其内容为:

# Swing properties#%JDK_HOME%/jdk_1.6.11/lib
swing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel
#swing.defaultlaf=com.sun.java.swing.plaf.mac.MacLookAndFeel
#swing.defaultlaf=com.sun.java.swing.plaf.motif.MotifLookAndFeel

关键词: GVIM 字体设置 Swing 外观设置


Mar 9 2010

Linux 环境编程的一些常识

杂乱地记录一些在 linux 下编程的常识,主要来自<Beginning Linux Programming> 的第一章。

  • /bin: 二进制文件目录,用于存放启动系统时用到的二进制文件。
  • /usr/bin: 用户二进制文件目录,用于存放用户使用的标准程序。
  • /usr/local/bin: 本地二进制文件目录,用于存放特定软件安装的程序。
  • /opt: 可选的操作系统组件和第三方应用可以安装在这个目录。可以将路径添加到PATH。
  • /usr/include: 系统的标准库函数。
  • /usr/include/sys及 /usr/include/linux: 一般放置依赖于特定系统的头文件。

如果没有用 -o 选项告诉编译器将可执行文件放在何处,则会默认将程序放到一个名为a.out的文件里,而a.out的意思是:assembler output,即汇编输出。

库文件的类型:

  • .a :archive 代表传统的静态函数库,类似于windows中的LIB文件,包含在可执行文件中。
    静态库的一个缺点是:如果同时运行多个应用程序,且使用来自同一个函数库时,内存中会有多个相同的拷贝,这将浪费大量的内存和磁盘空间。
  • .so :shared object 代表共享函数库,类似于windows中的dll文件,在程序运行时加载。
    程序使用共享库时的链接方式是这样的:它本身不再包含函数代码,而是引用时可访问的共享代码,当编译好的程序被装载到内存中执行时,函数引用被解析并产生对共享库的调用,如果有必要才被加载到内存中。
    可以使用ldd命令来查看程序所信赖的共享库。

在 gcc 中,参数 -lm 表示链接名为libm的库,并且,编译器会优先选择共享库。而 -L则表示添加库的搜索路径。-c 表示阻止编译器创建一个完整的程序。

$ gcc -c bill.c fred.c                           #生成目标文件
$ ar crv libfoo.a bill.o fred.o                  #生成静态库文件
$ gcc -o program program.o -L. -lfoo             #指定库文件位置

info 的优点是:可以通过链接或者交叉引用来浏览文档并可直接跳转到相关的章节。

> 重定向
>> 将输出附加到一个文件中。

0:标准输入
1:标准输出
2:标准错误