第 5 章 Debian 系统中可用的软件
目录
- 5.1. Debian GNU/Linux 收录了哪些类型的应用程序和开发工具?
- 5.2. 谁编写了所有这些软件?
- 5.3. 我应该如何获得一份 Debian 打包的程序的最新列表?
- 5.4. 我应该如何安装能够构建软件包的开发环境?
- 5.5. Debian GNU/Linux 缺少什么软件包?
- 5.6. 我编译程序时为什么会出现“ld: cannot find -lfoo”错误?为什么 Debian 库软件包里没有任何 libfoo.so 文件?
- 5.7. Debian 是否支持 Java?支持情况如何?
- 5.8. 我应该如何确认我正在使用的是 Debian 系统,以及使用的是哪一个版本?
- 5.9. Debian 对非英语语言的支持如何?
- 5.10. ezmlm/djbdns/qmail 在哪里?
- 5.11. Flash(SWF)播放器在哪里?
- 5.12. Google Earth 在哪里?
- 5.13. VoIP 软件在哪里?
- 5.14. 我有一张无线网卡不支持 Linux。我该怎么办?
和大多数 Linux 发行版类似,Debian GNU/Linux 提供:
-
用于软件开发、文件管理和文本处理的重要的 GNU 应用,包括 gcc、g++、make、textinfo、Emacs、Bash shell 以及众多改进过的 Unix 工具,
-
Perl、Python、Tcl/Tk 以及用于它们的各种相关的程序、模块和库,
-
Tex(LaTeX)和 Lyx、dvips、Ghostscript,
-
Xorg 窗口系统,它为 Linux 提供了一个基于网络的图形用户界面,以及无数的 X 应用程序,包括 GNOME、KDE 和 Xfce 桌面环境,
-
一套完整的网络应用程序,包括各种互联网协议的服务器,例如 HTTP(万维网)、FTP、NNTP(新闻)、SMTP 和 POP(电子邮件)以及 DNS(域名服务器);关系数据库,例如 PostgreSQL、MySQL;以及网络浏览器,包括各种 Mozilla 产品,
-
一套完整的办公应用,包括 LibreOffice 生产力套件、Gnumeric 及其他电子表格应用、所见即所得(WYSIWYG)编辑器、日历。
本发行版包含超过 58100 个软件包,囊括了新闻服务器、新闻阅读器、税务软件、数据库和电子表格应用、图像处理程序、通讯软件、网络工具、邮件工具、Web 服务器,甚至是业余无线电程序。另有 1000 个软件套件作为 Debian 软件包提供,但由于许可证的限制,它们不是 Debian 的正式组成部分。
对于所有软件包,它们的作者都记录在文件 /usr/share/doc/PACKAGE/copyright
中,其中 PACKAGE 需要替换为该软件包的名字。
在 Debian GNU/Linux 系统中打包该软件的维护者记载于各软件包的 Debian 控制文件(参见第 7.4 节 “什么是 Debian 控制文件?”)。位于 /usr/share/doc/PACKAGE/changelog.Debian.gz
的 Debian 变更日志,记载了其他曾为 Debian 打包作出贡献的人。
完整的列表可以在任何一个 Debian 镜像站点获得,位于文件 indices/Maintainers
。该文件包括了软件包的名称和对应的维护者的姓名和电子邮件。
Debian 软件包的 WWW 界面很方便地汇总了 Debian 仓库的大约三十个“区”的软件包。
如果您想要在 Debian 系统中构建软件包,您需要一个基本的开发环境,包括 C/C++ 编译器和其他一些必备的软件包。要安装该环境,您只需要安装 build-essential
软件包。这是个元软件包,或称作占位软件包,它依赖构建 Debian 软件包需要的标准开发工具。
不过,有些软件可能需要额外的软件才能被重新构建,这些依赖包括库的头文件或其他工具,例如 autoconf 或 gettext。Debian 提供了将其他软件编译为 Debian 软件包时需要的许多工具。
准确地找出需要哪些依赖可能是很困难的,除非您打算重新编译的是 Debian 软件包。后者相对来说比较容易,因为官方的软件包必须包含编译该软件包需要的额外的软件(除了 build-essential
中的软件包以外)的列表,这叫做编译时依赖(Build-Dependencies)
。要安装编译指定源码包所需的全部软件包,并编译该源码包,您只需运行:
# apt-get build-depfoo
# apt-get source --buildfoo
注意,如果您想要构建 Debian 分发的 Linux 内核,您还需要安装 kernel-package
软件包。欲了解更多信息,请阅读第 10.2 节 “Debian 提供了哪些工具来编译定制内核?”。
有一个 Debian 需要打包的软件包列表,叫做需要帮助和预期的软件包列表。
欲了解关于添加缺少的软件包的详细信息,请阅读第 13 章 向 Debian 计划作出贡献。
Debian 政策(Debian Policy)要求这类符号链接(到 libfoo.so.x.y.z 或类似文件)需放在单独的开发软件包中。这些软件包通常命名为 libfoo-dev 或者 libfooX-dev(假设库软件包名为 libfooX,X 为整数)。
一些 Java 的自由实现有 Debian 软件包可用,既可以提供 JDK,也可以提供 JRE。您可以使用 Debian 编写、调试及运行 Java 程序。
运行 Java applet 需要一个能够识别并执行它的网络浏览器。Debian 收录的几个浏览器,例如 Mozilla 和 Konqueror,支持 Java 插件,可以用来运行 Java applet。
请阅读 Debian Java FAQ 以了解更多信息。
要确认您的系统是从真正的 Debian 基本光盘安装的,请使用
lsb_release -a
命令。这会显示发行版的名称(在 Distributor ID 字段)和系统的版本号(在 Release 和 Codename 字段)。以下是在一个 Debian 系统中的运行结果示例:
$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 7.4 (wheezy) Release: 7.4 Codename: wheezy
您也可以检查是否存在 /etc/debian_version
文件,它仅有一行,给出了系统的版本号,是由软件包 base-files
定义的。
然而,您需要注意的是,Debian 系统包括许多组成部分,每一部分都(几乎)可以独立升级。每个 Debian“发布版本”都包含良好定义的、不变的内容。而更新会单独提供。要得到一行关于软件包 foo
安装状态的描述,请执行 dpkg --list foo
。要得到更详细的描述,请使用:
dpkg --status foo
要查看所有已安装的软件包的版本,请运行:
dpkg -l
注意,程序 dpkg
的存在意味着您可以在您的系统上安装 Debian 软件包。然而,因为该程序已被移植到了许多其他的操作系统和架构上,所以再也没有一个可靠的方法来确定一个系统是不是 Debian GNU/Linux 了。
-
Debian GNU/Linux 包含大约二十多种键盘布局的键盘映射表,也有工具(位于
kbd
软件包)可以安装、查看和编辑这些映射。安装过程会提示用户选择键盘布局。
-
Debian 几乎所有的软件都支持以 UTF-8 作为字符集。旧的字符集,例如 ISO-8859-1 和 ISO-8859-2,应当被视作是过时的。
-
当前,对德语、西班牙语、法语、匈牙利语、意大利语、日语、韩语、荷兰语、波兰语、葡萄牙语、俄语、土耳其语,以及中文手册页的支持,通过
manpages-LANG
软件包提供(其中 LANG 是两个字母的 ISO 国家代号)。要访问本地语言支持(NLS)的手册页,用户需要将 shell 的 LC_MESSAGES 环境变量设置为适当的字符串。例如,如果要使用意大利语的手册页,LC_MESSAGES 需要设置为“italian”。然后 man 程序就会在
/usr/share/man/it/
下搜索意大利语手册页。
Dan J. Bernstein 曾经将他编写的所有软件以一个限制性的许可证发布,不允许发布修改的二进制文件。然而,在 2007 年 11 月,Bernstein 表示 “……我已决定将我过去及未来编写的所有软件发布至公有领域……”。参见发布者的 FAQ 以了解他的发布条款。
截至本段写就时(2016 年 3 月),ezmlm-idx
仅在 experimental 仓库提供(mlmmj
也类似,并随 Debian jessie 提供);djbdns
仅在 sid(unstable)提供,参见 Bug #516394 和 Bug #796118 以了解详细信息,一个类似的替代品是 dbndns
软件包;publicfile
软件仍不是自由软件,publicfile-installer
软件包在 Debian 的 contrib 区提供。
Dan J. Bernstein 的其他软件(qmail
、daemontools
、ucspi-tcp
)随 Debian 提供。
Google Earth 的 GNU/Linux 版本在 Google 的网站上可以找到,但它不仅不是自由软件,而且第三方完全不能重新发布它。不过,googleearth-package
(在 contrib 区)可能可以为使用该软件提供帮助。
买一个支持的 :)
另外,也可以用 ndiswrapper
实现在 Linux 系统上使用 Windows 的驱动(如果您有的话)。参见 Debian 维基的 ndiswrapper 页面以了解更多信息。