1.3.1. Debian下的安装与配置
Debian 是一个致力于自由软件开发并宣扬自由软件基金会理念的自愿者组织。Debian 计划创建于 1993 年。当时,Ian Murdock 发出一份公开信, 邀请软件开发者们参与构建一个基于较新的 Linux 内核的完整而紧密的软件发行版。经过多年的成长,那群由 自由软件基金会资助并受 GNU 哲理影响的爱好者已经演变为一个拥有大约 1026 位 Debian 开发人员的组织。
Debian 计划是一个致力于创建一个自由操作系统的合作组织。我们所创建的这个操作系统名为 Debian。操作系统是使计算机运行的基本程序和工具的集合,其中最主要的部分称为内核 (kernel)。内核是计算机中最重要的程序,负责一切基本的调度工作,并让您运行其他程序。Debian 系统目前采用 Linux 内核或者 FreeBSD 内核。Linux 是一个最初由 Linus Torvalds 创建,目前由全球成千上万的程序师共同维护的软件。FreeBSD 是一个包括内核和其它软件的操作系统。然而,让 Debian 支持其他内核的工作也正在进行,最主要的就是 Hurd。Hurd 是一组在微内核 (例如 Mach) 上运行的提供各种不同功能的守护进程。Hurd 是由 GNU 工程所设计的自由软件。我们所创建的这个操作系统中的大部分基本工具来自于 GNU 工程;因此我们把它们命名为 GNU/Linux GNU/kFreeBSD 和 GNU/Hurd。这些工具同样都是自由的。
在Debian 8最新版本中查看:
$ uname -a
Linux localhost 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux
1.3.2. 基本类库的安装
本文主要关注 Advanced Packaging Tool (APT),APT 是 Debian 以及从 Debian 衍生出的发行版(比如 Ubuntu)使用的包管理系统。本系列中的另一篇文章 “学习 Linux 101:RPM 和 YUM 包管理” 讨论 Red Hat 包管理工具。
从用户的角度来说,基本包管理功能由命令提供。Linux 开发人员一直致力于让 Linux 更容易使用, 他们开发了其他工具(包括 GUI 工具)来补充基本工具,这对最终用户隐藏了基本工具的一部分。
安装 Debian 包 假设您想学 Lisp,一位同事让您使用 gcl 命令。您试着输入 gcl –help、which gcl 或 type gcl。但是,如果系统无法找到 gcl,您可能会看到与清单 1 相似的输出。
删除 Debian 包 如果想删除包,可以使用 apt-get 的 remove 选项。模拟运行见清单 5。
更新 Debian 包 如果需要更新某个包,同样应该使用带 install 选项的 apt-get 命令。清单 7 说明如何更新我系统上已经安装的 tzdata 包。在更新包之前,一定要运行 apt-get update,从而确保本地数据库反映最新的可用更新。
更新所有包或升级到新的发行版 除了更新指定的包之外,还可以使用 apt-get upgrade 命令更新系统上的所有包。与之相似,apt-get dist-upgrade 帮助迁移到发行版的新级别。关于 apt-get 的其他功能和选项的更多信息参见手册页。
用 dpkg 获取包状态 APT 系统中有一个 dpkg 工具。这是一个介质级包管理工具,它可以安装和删除包以及显示状态信息。可以通过 etc/dpkg/dpkg.cfg 控制 dpkg 的配置,还可以通过主目录中的 .dpkg.cfg 文件提供进一步配置。dpkg 工具使用文件系统中 var/lib/dpkg 树中的许多文件。尤其是 var/lib/dpkg/status 文件包含系统上包的状态信息。清单 8 使用 dpkg -s 在更新 tzdata 包之后显示它的状态,在删除 gcl 包之后显示它的状态。注意,gcl 包仍然留下了一些配置文件。还可以使用 purge 选项从缓存中清除下载的包文件并删除配置信息。
使用 aptitude 前面提到包的状态保存在 var/lib/dpkg/status 中。还提到 dpkg 不仅能够显示包信息。现在来看看 aptitude 命令,它为 APT 包管理功能提供基于文本的全屏幕界面(使用 ncurses)。可以使用 aptitude 安装或删除包以及控制状态标志,例如包是应该更新,还是应该保持当前状态。如果运行 aptitude 命令(作为根用户),会看到与图 2 相似的屏幕。
dpkg 是一种比较低层的软件包安装管理工具,在安装时,不会安装软件包的依赖关系;只能安装所要求的软件包;
dpkg通常用于 安装.deb文件,不会自动解决软件安装过程中的依赖关系
apt-get 是一种高级的软件包管理工具,在安装软件时,会自动解决软件安装过程中的依赖关系;
ap-get remove 不会自动删除不需要的软件包
aptitude 是一种带有UI界面的更高级的软件包安装管理工具,
自动解决软件包安装中的依赖关系;
并且在删除的时候,会自动删除不需要的软件依赖关系安装包;
更加的智能,高效
1.3.3. 查看软件、类库的关系
查看版本:
apt-cache show gdal-bin
apt-cache depends gdal-bin
1.3.4. 安装Python
GNU/Linux 操作系统中一般都带有 Python 安装版。不必单独安装。
1.3.5. 安装相关组件与类库
组件依赖
类库相关关系见图 。

GDAL/OGR的安装
# aptitude install python3-gdal gdal-bin
PROJ.4的安装
# aptitude install python3-pyproj proj-bin
Shapely的安装
# aptitude install python3-shapely
Fiona的安装
# aptitude install fiona python3-fiona
SpatiaLite安装
aptitude install python-pyspatialite spatialite-bin
感谢 Linux 程序员们,感谢 Debian , 在版本9中, 安装与使用 Mapnik非常简单。
# aptitude install python3-mapnik
bk@v:~$ python3 -c "import mapnik;print (mapnik.__file__)"
/usr/lib/python3/dist-packages/mapnik/__init__.py
执行上述代码后应该返回Python绑定的目录并且不出现错误。如果上述没有成功,请回去检查下Mapnik有没有成功安装。
1.3.6. 编辑器与开发环境
最好是免费, 开源更好。下面都是根据实际用过的情况介绍,
编辑器
初学, 建议使用纯文本编辑器。
Linux:Gvim, Emacs, Gedit. 选择一个就行。
Windows:Gvim, Notepad++, Editplut, E Text Editor(Windows下的textmate), UltraEdit(商业软件)。
Mac OS X:Gvim, 传说中的textmate(没用过)。
IDE
Linux:eclipse + pydev, Gvim + 相关插件
Windows:Eclipse + pydev, Gvim + 相关插件, IDLE(Python自带,外观简陋, 其实很强大), Ulipad(国内大牛开发)
PyCharm的配置与使用
一般情况下,如何不涉及 Web 开发,使用 PyCharm Community 版本完全可以满足要求。另外,对于教育,或者在维护的开源项目(一年以上的活跃项目)可以申请免费的授权来使用专业版本。




