在使用ubuntu时,不可避免的要安装一系列的软件,当然ubutu有自己的特定的软件安装方法,因此要找到它的行事风格,深入它这样做的好处,步入原理流,领悟一些东西。
linux,软件通常 源代码/预编译包 形式提供。
源代码 需编译为二进制机器代码,比较费时,但可自主调节编译选项 决定 需要的功能或组件 或 针对 硬件平台作出优化。
预编译包 软件发布者编译。通常不会针对某种硬件平台优化,它所包含的功能和组件也是通用的组合。(思想就是C里precomplie)
ubuntu软件,通常 deb格式 发布。它属于一种预编译包。包中除了包含已编译的软件,通常还包括 软件的拷贝路径、对其他软件的依赖关系记录、一个比较通用的配置文件以及 软件的描述、版本、作者、类别、占用空间等信息。
deb软件包命令遵循约定:soft_ver-rev_arch.deb rev为ubuntu修订版本,arch为目标架构名称
dpkg命令:管理deb软件包
dpkg -i | –install xxx.deb 安
dpkg -r | --remove xxx.deb d
pkg -r -P | --purge xxx.deb 连同配置文件一起删除
dpkg -I | -info xxx.deb 查看软件包信息
dpkg -L xxx.deb 查看文件拷贝详情
dpkg -l 查看系统中已安装软件包信息
dpkg-reconfigure xxx 重新配置软件包
存在依赖关系的deb包:一个个,或者同时安装多个dpkg -i aaa.deb bbb.deb。
再复杂些,就不能这么整了。就靠APT了,看下面
APT软件包管理系统
自动检测依赖关系,通过预设方式获得相关软件包,自动配置它。
APT系统需要一个软件信息数据库、至少一个存放大量deb包的软件仓库,即“源”(存在方式:可以服务器、CD或者本地软件仓库)
APT系统主要包括“apt-get”和“apt-cache”等命令。它们通常都是复合命令,包含若干个子命令
apt-get install xxx 安装xxx
apt-get install xxx 安装xxx
-d 仅下载 -f 强制安装apt-get remove xxx 卸载xxx
apt-get update 更新软件信息数据库
apt-get upgrade 进行系统升级
apt-cache search 搜索软件包
源码包——源码包所在目录、安装目录
下载到 /usr/local/src/,解包
源码目录 通常 有 “configure”脚本,用来配置编译过程。执行它会自动检测软件的编译环境和依赖关系,生成 Makefile
使用带参数的命令 ./configure --help或者阅读INSTALL,查看脚本允许的参数。例如使用 “--prefix=/usr/local/xxx”,将软件安装目录设定
make 根据Makefile编译为 目标文件
make install自动连接目标文件,最终文件拷贝到Makefile设定的路径,完成更改文件的属性,删除残留文件等。
符号链接 程序的可执行文件