Ant-Veil

Caspar Blog

在 Ubuntu 下编程开发配置 Tips

| Comments

值此 Ubuntu 8.10 发布之际(终于发布了,再不发布那就得叫 Ubuntu 8.11 了),特作此文。本文只是作为一个 Ubuntu 入门教材参考,因为很多人说我写 Ubuntu 安装教程时很多地方写的很模糊,对于没有 Linux 基础的人来说无异于天书- -b 孩子们,满足你们的愿望吧…

本文基于如下对读者的假设:

1. Ubuntu Linux 安装成功。如果迄今为止没有成功,请询问身边已经安装成功的人。我相信安装成功的人的数量,在学校抓一把至少其中含有一个。

2. 了解终端是什么,知道如何打开终端输入命令,了解命令语法。如果不知道如何打开终端输入命令,我也没办法……以下所有叙述,如果涉及命令操作,必然是在终端中进行操作。学过 DOS 的人应该对这一点在理解上没有难度,在 Windows 下用过 cmd 运行 ping 命令检测网络的人在理解上应该也没有难度。关于命令的语法,比如 sudo apt-get install OO_AND_XX 这个命令,表示在使用 root 权限(sudo)的情况下使用软件包管理工具(apt-get)进行安装 (install)OO_AND_XX 这个软件包的操作;同理 sudo gedit /etc/apt/sources.list 这个命令表示在使用 root 权限的情况下使用 gedit 这个文本编辑器打开/etc/apt/路径下的 sources.list 这个文件进行编辑(真费劲- -b)

3.了解 Linux 下 root 权限的基本知识,为什么在 2 中的例子都要带上 root 而你见过的 Redhat 的教科书上就没有?因为上述命令是需要 root 权限的……

由于 Ubuntu LiveCD 不带开发工具的不良嗜好,在进行编程和开发之前,需要解决工具的安装问题。你所需要的工具都需要从网络上获取,因此你需要更新你的网络源。网络源是一个仓库,通过在/etc/apt/sources.list 下的 URL 更新仓库中的软件包列表,然后通过 apt-get 或 aptitude 工具从列表上下载、安装、卸载所需的软件包。

在此提供一些比较好的教育网内的源列表:

# 北邮 Openware 源,北邮校内人士首选源。曾经我说过这个源比较不稳定,但是后来经过验证,还是挺稳定的,推荐
deb ftp://openware.byr.edu.cn/pub/mirror/ubuntu/ intrepid main multiverse restricted universe
deb ftp://openware.byr.edu.cn/pub/mirror/ubuntu/ intrepid-backports main multiverse restricted universe
deb ftp://openware.byr.edu.cn/pub/mirror/ubuntu/ intrepid-proposed main multiverse restricted universe
deb ftp://openware.byr.edu.cn/pub/mirror/ubuntu/ intrepid-security main multiverse restricted universe
deb ftp://openware.byr.edu.cn/pub/mirror/ubuntu/ intrepid-updates main multiverse restricted universe

# 台湾高性能计算中心(NCHC)源:
deb http://free.nchc.org.tw/ubuntu/ intrepid main restricted multiverse universe
deb http://free.nchc.org.tw/ubuntu/ intrepid-updates main restricted multiverse universe
deb http://free.nchc.org.tw/ubuntu/ intrepid-security main restricted multiverse universe
deb http://free.nchc.org.tw/ubuntu/ intrepid-proposed main restricted multiverse universe
deb http://free.nchc.org.tw/ubuntu/ intrepid-backports main restricted multiverse universe

# 台湾交大(NCTU)源:
deb http://ubuntu.csie.nctu.edu.tw/ubuntu/ intrepid main multiverse restricted universe
deb http://ubuntu.csie.nctu.edu.tw/ubuntu/ intrepid-backports main multiverse restricted universe
deb http://ubuntu.csie.nctu.edu.tw/ubuntu/ intrepid-proposed main multiverse restricted universe
deb http://ubuntu.csie.nctu.edu.tw/ubuntu/ intrepid-security main multiverse restricted universe
deb http://ubuntu.csie.nctu.edu.tw/ubuntu/ intrepid-updates main multiverse restricted universe

从上述三个中挑选一个源,覆盖到/etc/apt/sources.list 下即可。覆盖方法:

sudo gedit /etc/apt/sources.list

打开后挑选一个源,复制到文件中,覆盖原内容,保存退出。其中要注意的一点是,如果你的 Ubuntu 版本是 8.04,那么保持源列表中的"hardy"不变,如果你的是 Ubuntu 8.04,请将所有的"intrepid"改成"hardy",如果是 7.10,那么改成"gutsy"。

安装完毕之后,请执行下列命令更新软件列表(仅仅是软件列表,还没有更新系统和下载软件):

sudo apt-get update

更新完毕之后,如果你的网速太慢,就不要执行更新操作了,凑合着用吧,如果速度还行,可以执行下列命令更新系统:

sudo apt-get dist-upgrade

更新或者没有更新完系统之后,可以选择安装中文输入法和中文语言包支持。这一步我一般是在图形界面下完成的:到系统(System)->系统管理(Administration)->语言支持(Language Support)中,勾选汉语(Chinese)选项,自动下载中文语言包和 SCIM 的拼音支持。

准备工作结束,可以开始安装编译器 gcc 了。

如果你只是运行 sudo apt-get install gcc,那么当你写完一个 c 程序之后运行 gcc test.c 会提示你找不到头文件。那是因为你没有装 libc-dev 这个包。包含 lib 开头和 dev 结尾的软件包在 Ubuntu 下很流行,它表示这是一个开发库(developing library),其中包含了 C 语言标准头文件和库。在 Ubuntu 下另外有一个软件包集合了这些常用的 C/C++开发工具,它的名字叫 build- essential。所以你可以只运行下列命令就可以完成 gcc 的配置:

sudo apt-get install build-essential

gcc 是一个强大的工具,目前我只是使用它来编译 C、C++和 ASM,关于 gcc 的更多使用方法,可以使用下列两个方法:

man gcc

http://gcc.gnu.org/onlinedocs/

至于 man 命令的作用,请运行 man man-_-|||

接下去可以按相同的方法安装 gdb,只需要一条命令:

sudo apt-get install gdb

然后谈谈 vi。现在大家使用的 vi 基本上都是 vim,可以使用方向键来控制移动,而 Ubuntu 自带的 vi 由于习惯问题让人很不适应,所以你应该安装 vim-full 这个软件,它包含了 vim 和 gvim,后者是一个 GUI 化的 vim 编辑器:

sudo apt-get install vim-full

刚离开 VS 或者 VC 的你,可能不适应 Linux 下的编程环境。然而适应 VI 的操作是一个必须的技能,传说 Linux 程序员有三种,使用 VI 进行开发的,使用 EMACS 开发的,和使用其他进行开发的。如果你有兴趣了解 emacs,可以运行下列命令:

sudo apt-get install emacs21

vi 和 emacs 的使用,请访问下列站点:

http://vimdoc.sourceforge.net/htmldoc/usr_toc.html

http://www.gnu.org/software/emacs/manual/

至此,vi+gcc+gdb 的开发环境基本上搭建完毕,进行操作系统课上的基础编程作业应该绰绰有余了。

Comments