最后更新:2016年11月27日
 by FreeFind
title ?
开始
1. 简介
2. 改用 GNU/Linux
3. 获取 openSUSE
4. 安装
日常应用
5. KDE 桌面环境
6. 常用软件
7. 安全设置
8. 终端命令行
9. 管理员设置 (YaST)
10. 软件安装
11. 软件源
12. 与Windows世界兼容
设置
13. 多媒体编解码器
14. 浏览器插件
15. 显卡驱动
16. 无线网
17. 开发环境
18. 软件打包服务OBS
19. LAMP和LNMP
20. 其他常见服务软件
附录
A: 帮助和文档
B: 游戏
C. 深入了解
D. 提示和解决方法
E. 历史和背景
F: 重在参与
GNU自由文档许可证
17. 开发环境
本章介绍Linux下常用的开发环境,以及在openSUSE下安装和配置这些软件。由于这些软件中的每一个都有非常多的学问,这里只是简单介绍一下,开个门,让大家知道有这些东西的存在。实际学习编程语言和集成开发环境的用法需要参考各自相应的文档和教程书籍。

17.1 代码阅读和编辑器
Vim是vi的进化版,与 Emacs都是老牌的代码编辑器。这两个编辑器已经纵横了几十年了。vim本身是命令行下的编辑器,有个图形界面的包:gvim。这两个在openSUSE的发行DVD里面都有。 openSUSE默认安装了vim,但没装gvim,可以用Yast的软件管理搜索软件包的名字安装,或者执行安装命令:
zypper in gvim

Emacs默认没被安装,可以自己装:
zypper in emacs emacs-info

Kwrite是KDE桌面默认的文本和代码编辑器,KWrite还有个高级版Kate,功能更丰富。Gedit是GNOME桌面默认的文本和代码编辑器。如果是KDE桌面,需要装Gedit的话,可以执行:
zypper in gedit gedit-plugins gedit-plugins-lang

如果是GNOME桌面尝试KWrite/Kate,执行:
zypper in kwrite kate

几乎所有的Linux下的编辑器都带有各种编程语言的语法高亮显示,还有各种编辑器的插件(如gedit-plugins )。可以自己按照喜好定制编辑器。比如这个帖子:
Emacs中打造强大的Python IDE
不管喜好什么编辑器和编程语言,都可以类似地定制。这就是开源的好处之一。

17.2 C/C++和其他编程工具
17.2.1 Linux软件包简介
国内学校计算机编程的课程很多都是从C语言开始的。openSUSE默认没装gcc和g++等编译器。所以很多初次接触openSUSE的会觉得比较坑。这个容易,可以自己安装这些编译器和必要的devel包。这里先简单介绍一下,Linux软件包的名字通常有四种,以audacious播放器为例:
第一个包audacious是正式的发行包,里面有可执行的二进制文件。audacious-devel是开发包,里面通常是一些头文件和库文件,如果要用到audacious自带的一些头文件、库,那就需要装第二个。后面两个是用于调试的信息和源码,这通常只有调试audacious本身或者调试一些audacious插件才要用,后面两个通常是可以忽略的。
开发软件的时候,除了需要编译、链接工具外,还要一些常用库的发行包和开发包,如glibc和glibc-devel。如果系统里明明看到有如libnotify.so.4的库文件,而编译相关源代码时,却提示找不到libnotify库,那很可能是没装libnotify-devel开发包。

17.2.2 C/C++编译器和开发库
下面进入正题,安装gcc和g++等工具。可以在Yast的软件管理里面,搜索包的名字来安装,也可以用root命令行执行命令:
zypper in gcc gcc-c++

GNU编译器里还有其他编程语言的,如gcc-ada,gcc-fortran ,gcc-java ,gcc-objc等等,可以根据自己需要安装。
安装gcc和gcc-c++这两个软件包,软件包管理器会自动安装它们的依赖包:
binutils, gcc48, gcc48-c++ , glibc-devel, libstdc++48-devel , linux-glibc-devel。
第一个GNU Binutils是一些编程工具的集合,如其中的ar用于打包静态库,ld是链接器。这些是编程必备的。第二个和第三个是gcc和g++的实际的软件包,最后三个是标准C库和C++库的开发包,包含各种头文件和基础库。
安装好后,就可以执行如下编译命令:
gcc hello.c -o hello.out
g++ hello.cpp -o hcpp.out

在当前目录执行hello.out和hcpp.out,需要用 ./ 打头:
./hello.out
./hcpp.out

17.2.3 其他常用编程工具和库
除了编译器,还有其他编程或编译源码常用的工具。这里简单介绍一些:

gdb 调试器,默认已装,可以调试各种源代码,包括C/C++/Java/Fortran/Object-C等。
kdbg gdb的图形界面。
cpp 系统 GNU 预处理器,默认已装。
autoconf 自动配置源码和makefile文件的工具。
autogen 自动文本文件生成器,用于生成程序的文件,简化程序的管理。
automake 自动生成GNU风格的Makefile.in文件。
bison 类似Yacc的语法解析生成器。学编译原理的应该知道。
flex 快速词法分析生成器。学编译原理的应该知道。
m4 是传统Unix宏解析器的一个实现。
make 是编译项目代码必备的,包含make命令行工具和文档。
cmake 跨平台的make工具。如果是使用cmake的Qt项目,还需要软件包 automoc4。
ccache 快速C/C++编译器缓存,加速编译器重复编译的过程。
checkinstall “make install”命令安装的跟踪器,从源码编译安装程序时常用。
nasm x86汇编工具。
boost-devel Boost是 跨平台的C++标准库的扩展库, 包含大量的通用功能代码。这个是其开发包。
gsl GNU科学计算库,如数值计算等。其开发库是gsl-devel。
opencv Intel的开源图像视频处理库。其开发库是opencv-devel。
sqlite3-devel SQLite 3数据库的开发包。
zlib-devel 压缩函数库zlib的开发包。
tcllib, tcl-devel, tclx, tix, tk, tk-devel, vtcl 这些是Tcl/Tk编程的工具和库文件,编译源码的时候可能遇到。

上面介绍的当然只是冰山一角,还有茫茫多的工具和开发库。实际需要哪些就装哪些,可以随时在Yast软件管理里面搜索相关的东西。命令行安装也可以,比如:
zypper in kdbg autoconf autogen automake automoc4 bison flex m4 make cmake ccache checkinstall nasm gsl-devel sqlite3-devel zlib-devel

安装时,软件包管理器通常会提示自动装些依赖库和语言包,选“确定”就行了。

17.3 Java和 Eclipse集成开发环境
Java毫无疑问也是非常流行的编程语言。Oracle官方有适合各种操作系统的JDK 7.0/8.0的下载(如果是要装Android开发环境,那么本节的内容可以完全跳过,后面17.8节有更简单的方法)。
openSUSE自带的是开源社区维护的OpenJDK 8,默认装了OpenJDK 8,但是开发包、文档、例子没装,如果要搞Java开发,建议都装上:
zypper in java-1_8_0-openjdk-devel java-1_8_0-openjdk-demo java-1_8_0-openjdk-javadoc

由于openJDK很多东西或快捷方式装在系统路径上,所以不需要配置。直接可用来编译Java程序。
javac hello.java
java hello

Eclipse是IBM公司引领的杰作,很多Java开发都用Eclipse集成开发环境,包括Android开发调试。Eclipse本身是一个跨平台的框架,可以通过插件形式,支持Java、C/C++、Perl、Ruby、Python、数据库等开发。Eclipse需要去官网下载:
http://www.eclipse.org/downloads/
一般Java开发可以下载:Eclipse IDE for Java EE Developers ,根据自己系统选择Linux 32bit或Linux 64bit。如果用于C/C++或建模语言,可以下载其他的版本。

下载后,比如64位系统的eclipse-jee-juno-SR2-linux-gtk-x86_64.tar.gz,可以直接解压缩到用户目录的bin文件夹里,比如解压到 /home/suse123/bin/ 。然后在/home/suse123/bin/eclipse/目录下面直接运行eclipse就行了。初次运行会比较慢,后面会好些。Eclipse工作空间用默认的如/home/suse123/workspace就行。

eclpise

可以在Eclipse里面新建各种项目,包括Java本身的和Web的都可以。

Eclipse汉化包可以通过在Eclipse里面添加源,然后自动下载中文语言插件。参看这个:
http://zhidao.baidu.com/question/179934518.html
http://www.eclipse.org/babel/downloads.php
对于最新的Juno版本,打开 Eclipse菜单Help——>Install New Software... , 在打开的对话框里,第一行里输入: http://download.eclipse.org/technology/babel/update-site/R0.11.0/kepler
名字取为Babel,点击OK。然后等待列出一堆语言包,选上 Babel Language Packs in Chinese(Simplified) 和 Babel Language Packs in Chinese(Traditional) ,一直点Next和Accept, 等下载安装完就搞定了。

17.4 Perl和Python
Linux下著名的3P脚本语言就是Perl、Python、Php。Php放到19章搭建LAMP和LNMP网站介绍。openSUSE默认就安装了Perl和Python。当然,Perl和Python还有非常多的模块,数不胜数,不可能全都装上,这个可以自己看需要什么模块就装什么。

python


17.5 Qt和QtCreator、KDevelop
Linux下常用的C/C++语言的图形库就数Qt、Gtk+和wxWidgets了。这些都是可以跨平台的,Windows下也可以有。常用的集成开发环境,除了上面的Eclipse,还有KDevelop、QtCreator、Anjuta、Code::Blocks,Gtk+有个可视化编辑的工具glade 。

本节介绍Qt和QtCreator、KDevelop。Qt最初是奇趣公司开发的跨平台图形库。后来整个公司被Nokia买了,Nokia本打算利用Qt开发新的智能手机操作系统Meego,Meego不幸夭折了。Qt也被Nokia出卖给芬兰IT服务公司Digia。虽然遭遇各种变故,Qt的活力不减当年。

Qt是KDE桌面的基石,开发Qt程序可以用简单的文本编辑器,也可用各种复杂的集成开发环境。QtCreator算是后起之秀,现在做的界面和功能都不错,建议使用。Qt开发库和QtCreator安装命令:
zypper in libqt4-devel qt-creator libqt4-devel-doc

需要注意磁盘空间,最后一个文档包体积较大,当然所带的英文资料也够丰富。(在Yast软件管理中搜索 qt5 可以找到 qt5 的开发库和工具。)

qtcreator


KDevelop是比较全面的集成开发环境,KDevelop支持多种不同语言,其中包括C、C++、Perl、Python、PHP、Java、Fortran、Ruby、Ada、Pascal、SQL和Bash脚本。支持各种图形库编程,支持的构建系统包括GNU(automake)、cmake、qmake和自定义项目的make(如果您想使用自己的Makefile,KDevelop不会破坏它们的)以及不需要Makefile的脚本项目。安装命令:
zypper in kdevelop4 libkde4-devel kdevelop4-devel kdevelop4-plugins-php kdevelop4-doc

安装后运行KDevelop可能会提示Git插件被禁用,因为没装Git。Git等版本控制系统后面介绍,这里先不管。默认的项目模板不多,其他语言支持的应该需要具体配置,参看其文档和主页:
http://www.kdevelop.org/

kdevelop


17.6 Gtk+和Anjuta
Gtk+当然也是非常著名的图形库,是GNOME、Xface、LXDE等桌面环境的基石。openSUSE发行光盘里面有Gtk+ 版本2和版本3的开发包,还有许多其他Gtk+系列的库。Gtk+有一个可视化编辑工具Glade,当然更推荐GNOME桌面集成开发环境Anjuta,Anjuta还有一些插件可以自己装。Gtk+和Anjuta安装命令:
zypper in gtk3-devel gtk-doc anjuta anjuta-lang intltool gtkmm3-devel gtkmm3-doc gtkmm3-tutorial gtkmm3-tutorial-lang

安装Anjuta的时候,软件管理器会装一堆依赖包(好像少了个intltool,一定要补上),其中有subversion,就是SVN版本控制系统。
这些集成开发环境都附带有版本控制系统的插件功能,比较省事。 除了支持C/C++/Gtk+,Anjuta还支持Java/JavaScript/Python等语言和WxWidgets图形库编程。

anjuta


17.7 wxWidgets和 Code::Blocks/CodeLite
wxWidgets是模仿Windows MFC编程风格的跨平台图形库。 它执行效率比较高,在Windows下像MFC,Linux下就像Gtk+。 网页编辑工具Amaya、FTP软件FileZilla 、 集成开发环境Code::Blocks/CodeLite就是使用wxWidgets开发的。 wxWidgets的开发库需要连网下载。安装命令:
zypper in wxWidgets-devel wxWidgets-docs

wxWidgets的组件比较散,还有一些插件和其他的插件开发包,可以自己选择安装。

Code::Blocks也是流行的开发环境,只是在openSUSE上用的比较少,在openSUSE官方发行DVD和源里面没有。CodeLite也是类似的开发环境,已经进入openSUSE官方源里。

Code::Blocks需要安装libcodeblocks0和codeblocks本身,一键安装的页面:
http://software.opensuse.org/package/libcodeblocks0
http://software.opensuse.org/package/codeblocks
或者使用root命令行安装:
zypper ar -f http://download.opensuse.org/repositories/home:/mad_soft/openSUSE_Leap_42.3/ CB
zypper in libcodeblocks0 codeblocks

Code::Blocks运行比较快,默认就带很多项目模板如 C/C++/Fortran、Gtk+、Qt、wxWidgets、OpenGL、Matlab 等等,这也是它在Linux和Windows下流行的一个原因。

codeblocks

Code::Blocks官网:
http://www.codeblocks.org/
CodeLite已经在openSUSE官方源中,可以直接用Yast软件管理搜索安装。
http://www.codelite.org/


17.8 Android开发环境
Android是著名的开源智能手机操作系统,Android SDK是其开发环境,如果要为Android开发软件包,可以在官网下载全套的ADT (Android Developer Tools):
http://developer.android.com/sdk/index.html
32位系统下载 adt-bundle-linux-x86-*.zip,64位系统下载 adt-bundle-linux-x86_64-*.zip 。

比如下载的是adt-bundle-linux-x86_64-20130219.zip,直接解压缩到当前用户目录的bin文件夹里,如 /home/suse123/bin/ ,然后进入目录 /home/suse123/bin/adt-bundle-linux-x86_64-20130219/eclipse/ ,直接运行里面的eclipse即可。由于openSUSE默认就装了openjdk到系统路径,所以不需要配置,就可以使用Android开发平台。

android

上面方法是最简单的安装方式,ADT (Android Developer Tools)包含了Eclipse IDE、Android开发库、模拟器,应有尽有。还有一个稍微麻烦的安装方式。 如果系统里面已经有了现成的openJDK和Eclipse,希望通过插件方式集成Android SDK Tools也是可以的,需要连网下载Eclipse插件,具体配置方式参考:
http://developer.android.com/sdk/installing/index.html
http://www.cnblogs.com/pharen/archive/2011/09/13/2174592.html
新手当然推荐第一种最简单的ADT (Android Developer Tools),不需要配置,直接使用。

17.9 版本控制软件
版本控制软件是开发软件、维护软件源码、软件代码更新、下载和发布的综合管理平台。比如openSUSE的源代码就完全通过git来开发、管理、下载、发布的(如 http://gitorious.org/opensuse )。 因为开源社区维护开源软件时,很多时候同一软件的开发者不可能始终凑一起开发,所以分布式版本控制软件就很必要。这样可以在各种环境开发和更新软件源码。常用的版本控制系统有:CVS(Concurrent Versions System)、SVN(Subversion)、Git、 Mercurial、Bazaar等。

关于Linux下的版本控制软件,推荐看这个帖子:
http://www.ibm.com/developerworks/cn/linux/l-vercon/index.html

17.9.1 CVS
CVS是一个老牌的版本控制系统,根据维基百科介绍,很多开源或者自由软件项目都使用CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。这些项目包括:Gnome、KDE、GIMP、Wine等。CVS的使用获GNU通用公共许可证授权。

CVS安装命令:
zypper in cvs cvs-doc cervisia

查看CVS内置帮助说明的命令:
cvs --help

17.9.2 SVN
根据维基百科介绍,Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。2009年11月,Subversion被Apache Incubator专案所接收。2010年1月,正式成为Apache软件基金会的一个顶级专案。

SVN安装命令:
zypper in subversion subversion-doc kdesvn

还有其他 Subversion相关的包,比如cvs2svn是将CVS源转换成SVN的源, kdesvn是SVN的图形客户端,subversion-server和subversion-tools是搭建SVN服务器的Apache软件模块和管理工具。查看SVN内置帮助说明的命令:
svn help

17.9.3 Git
Git是Linux内核开发老大Linus Torvalds创立的,是为了更好地管理Linux内核。 当然现在不止是内核,发行版如Fedora、openSUSE、Arch Linux, 图形库如Qt、Gtk+,还有很多基础软件源码也都是Git管理、下载和发布的。

Git安装命令:
zypper in git qgit

软件管理器会自动安装依赖包:git-core、git-cvs、git-email、git-gui、git-svn 、git-web、gitk。除了默认的git-gui,还有Gtk+版的gitg图形界面和Qt版的qgit 图形界面。 查看Git内置帮助说明的命令:
git help

安装了Git之后,前面介绍过,几乎所有的集成开发环境都带了各种版本控制软件的功能插件。比如装了Git之后,KDevelop的Git插件就可以正常使用了,不会再报插件禁用的问题。QtCreator可以从版本控制系统管理的项目导入现有项目,也可以通过Git插件发布代码到网上。
qtcreatorgit

17.9.4 Mercurial
根据维基百科介绍,Mercurial 是一个跨平台的分布式版本控制软件。 Mercurial主要由Python语言实现,不过也包含一个用C实现的二进制比较工具。 Mercurial主要由一个命令行程序组成,但现在也有了图形用户界面。 对Mercurial的所有操作都由用不同的关键字作为参数调用程序hg来实现,Hg是参考水银的化学符号而取的名字。Mercurial是以GPLv2发布的自由软件。 采用Mercurial管理项目的软件有Mozilla、OpenJDK、OpenSolaris、Xen、Audacious、Netbeans等。

Mercurial安装命令:
zypper in mercurial mercurial-lang hgview-qt4

查看Mercurial内置帮助说明的命令:
hg help

17.9.5 Bazaar
根据百度百科,Bazaar是一个分布式的版本控制系统,采用 GPL 许可协议,可运行于 Windows、GNU/Linux、UNIX 以及 Mac OS 系统之上。Bazaar 由 Canonical 公司(Ubuntu母公司)赞助。 使用Bazaar的项目或组织包括 MySQL、 Mailman、Launchpad、 Linux Foundation等等,Ubuntu和Debian的很多东西当然也用Bazaar管理。

Bazaar安装命令:
zypper in bzr bzr-lang

查看Bazaar内置帮助说明的命令:
bzr help

prev
next
本文档翻译自 http://opensuse-guide.org/ 不当之处,还望指正
使用e-mail发送您的英文评论给 admin [at] opensuse-guide.org
或发送意见和建议给中文译者:Libitum (hello[at]libitum.org); Winland (winland0704[at]126.com)