第 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。我该怎么办?
5.1. Debian GNU/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 的正式组成部分。
5.2. 谁编写了所有这些软件?
对于所有软件包,它们的作者都记录在文件 /usr/share/doc/PACKAGE/copyright 中,其中 PACKAGE 需要替换为该软件包的名字。
在 Debian GNU/Linux 系统中打包该软件的维护者记载于各软件包的 Debian 控制文件(参见第 7.4 节 “什么是 Debian 控制文件?”)。位于 /usr/share/doc/PACKAGE/changelog.Debian.gz 的 Debian 变更日志,记载了其他曾为 Debian 打包作出贡献的人。
5.3. 我应该如何获得一份 Debian 打包的程序的最新列表?
完整的列表可以在任何一个 Debian 镜像站点获得,位于文件 indices/Maintainers。该文件包括了软件包的名称和对应的维护者的姓名和电子邮件。
Debian 软件包的 WWW 界面很方便地汇总了 Debian 仓库的大约三十个“区”的软件包。
5.4. 我应该如何安装能够构建软件包的开发环境?
如果您想要在 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 提供了哪些工具来编译定制内核?”。
5.5. Debian GNU/Linux 缺少什么软件包?
有一个 Debian 需要打包的软件包列表,叫做需要帮助和预期的软件包列表。
欲了解关于添加缺少的软件包的详细信息,请阅读第 13 章 向 Debian 计划作出贡献。
5.6. 我编译程序时为什么会出现“ld: cannot find -lfoo”错误?为什么 Debian 库软件包里没有任何 libfoo.so 文件?
Debian 政策(Debian Policy)要求这类符号链接(到 libfoo.so.x.y.z 或类似文件)需放在单独的开发软件包中。这些软件包通常命名为 libfoo-dev 或者 libfooX-dev(假设库软件包名为 libfooX,X 为整数)。
5.7. Debian 是否支持 Java?支持情况如何?
一些 Java 的自由实现有 Debian 软件包可用,既可以提供 JDK,也可以提供 JRE。您可以使用 Debian 编写、调试及运行 Java 程序。
运行 Java applet 需要一个能够识别并执行它的网络浏览器。Debian 收录的几个浏览器,例如 Mozilla 和 Konqueror,支持 Java 插件,可以用来运行 Java applet。
请阅读 Debian Java FAQ 以了解更多信息。
5.8. 我应该如何确认我正在使用的是 Debian 系统,以及使用的是哪一个版本?
要确认您的系统是从真正的 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 了。
5.9. Debian 对非英语语言的支持如何?
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/下搜索意大利语手册页。
5.10. ezmlm/djbdns/qmail 在哪里?
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 提供。
5.11. Flash(SWF)播放器在哪里?
Debian 提供 gnash 和 swfdec:两个自由的 SWF 短片播放器。
5.12. Google Earth 在哪里?
Google Earth 的 GNU/Linux 版本在 Google 的网站上可以找到,但它不仅不是自由软件,而且第三方完全不能重新发布它。不过,googleearth-package(在 contrib 区)可能可以为使用该软件提供帮助。
5.13. VoIP 软件在哪里?
VoIP 有两个主要的开放协议:SIP 和 H.323。在 Debian main 中,两个协议都有多个软件实现。ekiga 是流行的客户端之一。
5.14. 我有一张无线网卡不支持 Linux。我该怎么办?
买一个支持的 :)
另外,也可以用 ndiswrapper 实现在 Linux 系统上使用 Windows 的驱动(如果您有的话)。参见 Debian 维基的 ndiswrapper 页面以了解更多信息。
第 5 章 Debian 系统中可用的软件的更多相关文章
- debian 系统中安装中文输入法
debian wiki 中关于此主题的文档 :https://wiki.debian.org/InputMethodBuster 在图形界面选择 gnome,输入法程序选择 ibus 的情况下,配置较 ...
- 替换 Docker 或 Laradock 中 Debian 系统镜像源解决软件安装问题
Docker Debian 镜像源替换 因多数默认的 Docker 镜像为国外的,而采用的镜像源也是国外的,故访问很慢,所以我们需要替换为国内的(比如阿里云或163等). 163 - Debian A ...
- debian系统中添加sudo权限
刚安装好的Debian默认还没有sudo功能.1.安装sudo# apt-get install sudo2.修改 /etc/sudoers 文件属性为可写# chmod +w /etc/sudoer ...
- Debian系统中当安装deb软件时出现:deb cdrom:[Debian GNU/Linux 9.3.0 _Stretch_ - Official amd64 DVD Binary-1 20171209-12:11]/ stretch contrib main
vi /etc/apt/sources.list // 注释掉下面这句话# deb cdrom:[Debian GNU/Linux 9.3.0 _Stretch_ - Official amd64 D ...
- debian 系统中安装 broadcom 无线网卡驱动
首先要修改 apt 的配置文件,允许安装 non-free 软件.即在 /etc/apt/sources.list 中生效的行的最后加上 contrib non-free,再使用 apt-get up ...
- 命令行翻译 推荐一个linux系统中可用的终端小程序
程序的github地址:https://github.com/fanbrightup/fanyi 使用起来非常简单,同时支持中英文互译甚至是整句. 步骤一:首先你需要安装node,参见我的node安装 ...
- Pyqt 获取windows系统中已安装软件列表
开始之前的基础知识 1. 获取软件列表 在Python的标准库中,_winreg可以操作Windows的注册表.获取已经安装的软件列表一般是读去windows的注册表: SOFTWARE\Micros ...
- 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置
原文:第十七章--配置SQLServer(2)--32位和64位系统中的内存配置 前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE ...
- 获取Windows系统中的所有可用和在用串口
目的:获取Windows系统中的所有可用和在用串口 方法:注册表查询法 优点:简单.实用.快速.无遗漏,无多余结果. 说明:另外还有8种方法可以枚举串口,但都不如此法. 代码和详细注释如下: //-- ...
- 在Debian/Ubuntu系统中安装*.sh与*.bin文件
在Debian/Ubuntu系统中安装*.sh与*.bin文件的基本方法.一,安装*.sh文件运行命令行至文件目录下,执行:sudo sh *.sh直接运行在命令行中执行:sudo chmod +x ...
随机推荐
- 内核模块踩内存问题定位利器- hardware breakpoint
内核由于共享内存地址空间,如果没有合适的工具,很多踩内存的问题即使复现,也无法快速定位: 在新的内核版本中引入了一个新工具hardware breakpoint,其能够监视对指定的地址的特定类型(读/ ...
- DDD实体和对象
实体 entity 标识符用来唯一定位一个对象,在数据库中我们一般用表的主键来实现标识符,主键和标识符的思考角度不同,就是 id 字段 : 实体:拥有唯一的标识符,标识符的值不会改变,而其他对象的状态 ...
- kotlin协程——>组合挂起函数
默认顺序调用 假设我们在不同的地⽅定义了两个进⾏某种调⽤远程服务或者进⾏计算的挂起函数.我们只假设它们都是有⽤的,但是实际上它们在这个⽰例中只是为了该⽬的⽽延迟了⼀秒钟: suspend fun do ...
- Android复习(五)设备兼容—>多apk支持
1. 对于不同的屏幕发布单独的apk https://developer.android.google.cn/training/multiple-apks/screensize 2.多窗口模式 在An ...
- vite 搭建项目删除console 和debugger
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- 深入浅出 Kubernetes 项目网关与应用路由
KubeSphere 项目网关与应用路由提供了一种聚合服务的方式,将集群的内部服务通过一个外部可访问的 IP 地址以 HTTP 或 HTTPs 暴露给集群外部.应用路由定义了这些服务的访问规则,用户可 ...
- 再见 Dockerfile,拥抱新型镜像构建技术 Buildpacks
作者:米开朗基杨,方阗 云原生正在吞并软件世界,容器改变了传统的应用开发模式,如今研发人员不仅要构建应用,还要使用 Dockerfile 来完成应用的容器化,将应用及其依赖关系打包,从而获得更可靠的产 ...
- 说说Java的类加载机制?究竟什么是双亲委派模型?
首先引入一个概念,什么是Java类加载器? 一句话总结:类加载器(class loader)用来加载 Java 类到 Java 虚拟机中. 官方总结:Java类加载器(英语:Java Classloa ...
- C++ STL 容器简介
1.总述 C++ STL(Standard Template Library)是 C++ 标准库的一部分,包括了许多数据结构的实现,提供了许多好用的轮子,同时,其设计思想也非常值得学习.其中,容器是 ...
- git 拉取或者推送代码报错问题解决
报错截图: 当推送远程时,提示无法访问github地址 原因:在拉取或者是提交项目时,会发生git的http和https代理,我们电脑本地已经存在SSL协议的协议,可以取消http和https代理 在 ...