首页 > 代码库 > 软件安装与配置
软件安装与配置
软件安装
DPKG
Linux系统中,软件通常以源代码或者预编译包的形式提供。
软件源代码需要编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节编译选项,决定需要的功能或组件,或者针对硬件平台作一些优化。
预编译的软件包,通常是由软件的发布者进行编译,您只要将软件拷贝到系统中就可以了。考虑到预编译软件包的适用性,预编译软件包通常不会针对某种硬件平台优化。它所包含的功能和组件也是通用的组合。
Ubuntu系统中,软件通常以 deb 格式的包文件发布,它是一种预编译软件包。deb包中除了包含已编译的软件,通常还包括软件的拷贝路径、对其它软件包的依赖关系纪录、比较通用的配置文件以及软件的描述、版本、作者、类别、占用空间等信息。
deb软件包命令遵行如下约定:
soft_ver-rev_arch.deb
soft软件包名称 ver软件版本号 revUbuntu修订版本号 arch目标架构名称
例如: azureus_2.4.0.2-0ubuntu2_all.deb
您需要使用 dpkg 命令来管理deb软件包:
dpkg -i | --install xxx.deb 安装deb软件包
dpkg -r | --remove xxx.deb 删除软件包
dpkg -r -P | --purge xxx.deb 连同配置文件一起删除
dpkg -I | -info xxx.deb 查看软件包信息
dpkg -L xxx.deb 查看包内文件
dpkg -l 查看系统中已安装软件包信息
dpkg-reconfigure xxx 重新配置软件包
有些时候,您使用 dpkg 安装一个软件包,系统会提示您该软件包依赖其它软件包。这时,您先安装其它软件包,直到满足依赖关系为止。或者同时安装多个软件包
dpkg -i aaa.deb bbb.deb ccc.deb
APT
如果一个软件依赖关系过于复杂,使用 dpkg
来安装它,并不是一个明智的选择,这个时候您就需要用到APT软件包管理系统。APT可以自动的检查依赖关系,通过您预设的方式来获得相关软件包,并自动
安装配置它。事实上,在多数情况下,我们推荐您使用APT软件包管理系统。
APT系统需要一个软件信息数据库和至少一个存放着大量deb包的软件仓库,我们称之为 源 。 源 可以是网络服务器,安装CD或者本地软件仓库。您需要修改 /etc/apt/sources.list 文件,使APT系统能够连接到 源。
从以下页面中获得网络安装源的列表,并且根据您的网络环境,选择速度较快的源。
http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E......%97/DapperDrake
APT系统主要包括 apt-get 和 apt-cache 等命令。通常是复合命令,包含若干个子命令。
apt-get install xxx 安装xxx
-d 仅下载 -f 强制安装
apt-get remove xxx 卸载xxx
apt-get update 更新软件信息数据库
apt-get upgrade 进行系统升级
apt-cache search 搜索软件包
说明:建议您经常使用 sudo apt-get update 命令来更新您的软件信息数据库
APT系统修复
由于各种意外,APT系统可能会出现问题,使用如下命令,尝试进行修复:apt-get -f install
源码包
对于绝大多数软件,我们建议您使用APT系统来安装它。在少数情况下,例如某软件没有以deb包的格式发布,或者需要定制适合自己的软件,您可以通过编译源代码的方式安装它。
首先需要下载软件的源码包,并且将它解包为一些源代码文件。并了便于管理,建议将下载的源码包移动到 /usr/local/src/ 目录下,并在这里解包。
sudo mv xxx.tar.gz /usr/local/src 移动源码包
cd /usr/local/src 进入“/usr/local/src/”目录
sudo tar -xzvf xxx.tar.gz 解包源码
cd xxx_ver/ 进行解包后的源码目录
源码目录中通常有一个 configure 脚本,用来配置即将开始的编译过程。您可以执行它
sudo ./configure [--prefix=/usr/loca/xxx ......]
它会自动检测软件的编译环境和依赖关系,并且生成 Makefile 文件。
使用带参数的命令 ./configure --help ,或者阅读 INSTALL 文件,查看该脚本允许的参数。例如使用
--prefix=/usr/local/xxx 参数,将软件的安装目录设定为 /usr/local/xxx/
。(如果一定要将软件安装在单独目录下,建议您安装在这里)
现在执行 make 命令,系统会根据 Makefile 文件中的设定,通过 make 工具调用编译器和所需资源文件,将源代码编译成目标文件。
sudo make
执行 make install 命令, make 工具会自动连接目标文件和库文件,将最终生成的文件拷贝到 Makefile 文件设定的路径中,并且完成更改文件的属性,删除残留文件等活动。
sudo make install
现在,编译安装已经完成,为了更方便的使用它,需要给程序的可执行文件作一个符号链接。
sudo ln -sf /usr/local/xxx/可执行文件 /usr/local/bin/可执行文件
Tip:为了顺利的进行编译,至少需要安装 build-essential 软件包。
sudo apt-get install build-essential
tar -c|x|u|r|t[z|j][v] -f <归档文件> [未打包文件]
将多个文件打包为一个归档文件,可以在打包的同时进行压缩。支持的格式为tar(归档)、gz(压缩)、bz2(压缩率更高,比较耗时)
-c 创建 -x 解包 -u 更新 -r 添加 -t 查看
-d 比较压缩包内文件和文件 -A 将tar文件添加到归档文件中 -z 使用gz压缩格式
-j 使用bz2压缩格式 -v 显示过程 -f <文件名> 归档文件的文件名
-C <解压路径> 将压缩包中的文件解压到指定目录
[未打包文件] 创建、更新时必须填写
示例:
tar -zcvf xxx.tar.gz xxx/ xxx1 xxx2 xxx3 多个待打包文件以空格分隔
tar -zcvf xxx.tar.gz /home/user/xxx/ 使用绝对路径打包,解包也使用绝对路径
tar -zxvf xxx.tar.gz 按相对路径解包到当前目录下,或按绝对路径解包
tar -zcvf xxx.tar.gz xxx | split -b 1m 打包后,使用split分割为1m大小的多个文件
其它参数
-P 使用绝对路径压缩时,保留根目录“/” -W 校验 -p 还原文件权限
-w 询问用户 --totals 统计 -T <表达式> 处理符合条件的文件
-X <表达式> 排除符合条件的文件
zip [参数] <压缩包> <源文件>
使用zip格式打包文件
-r 递归,将指定目录下的所有文件和子目录一并处理 -S 包含系统和隐藏文件
-y 直接保存符号连接,而非该连接所指向的文件 -X 不保存额外的文件属性
-m 将文件压缩并加入压缩文件后,删除源文件
-<压缩级别> 1~9,数字越大,压缩率越高
-F 尝试修复已损坏的压缩文件 -T 检查备份文件内的每个文件是否正确无误
-q 不显示指令执行过程 -g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件
-u 更新压缩包内文件
-f 更新压缩包内文件。如果符合条件的文件没有包含在压缩包中,则压缩后添加
-$ 保存第一个被压缩文件所在磁盘的卷标 -j 只保存文件名称及其内容
-D 压缩文件内不建立目录名称 -i <表达式> 压缩目录时,只压缩符合条件的文件
-x <表达式> 排除符合条件的文件 -n <文件名后缀> 排除指定文件名后缀的文件
-b <缓存路径> 指定临时文件目录 -d <表达式> 从压缩文件内删除指定的文件
-t <日期时间> 把压缩文件的日期设成指定的日期
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同
-A 调整可执行的自动解压缩文件 -c 替每个被压缩的文件加上注释
-z 替压缩文件加上注释 -k 使用MS-DOS兼容格式的文件名称。
-l 压缩文件时,把LF字符置换成LF+CR字符。 -ll 压缩文件时,把LF+CR字符置换成LF字符。
unzip [参数] <压缩文件> [压缩包中将被释放的文件]
解压zip压缩包文件
-P <密码> zip压缩包的密码 -d <路径> 指定解压路径 -n 解压缩时不覆盖原有文件
-f 覆盖原有文件 -o 不经询问,直接覆盖原有文件
-u 覆盖原有文件,并将压缩文件中的其他文件解压缩到目录中
-l 显示压缩文件内所包含的文件 -t 检查压缩文件是否正确 -z 显示压缩包注释
-Z unzip -Z等于执行zipinfo指令 -j 不处理压缩文件中原有的目录路径
-C 压缩文件中的文件名称区分大小写 -L 将压缩文件中的全部文件名改为小写
-s 将文件名中的空格转换下划线 -X 解压缩时保留文件原来的UID/GID
-q 执行时不显示任何信息 -v 执行是时显示详细的信息
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
-a 对文本文件进行必要的字符转换 -b 不要对文本文件进行字符转换
-x <表达式> 处理里排除压缩包中的指定文件 -M 将输出结果送到more程序处理
7z|7za <子命令> [参数] <压缩包> [文件]
子命令
a 添加 d 删除 e 解压 x 带路径解压 l 列表查看 t 测试 u 更新
参数
-m<压缩方式> -m0=<压缩算法> 默认使用lzma -mx=<1~9> 压缩级别
-mfb=64 number of fast bytes for LZMA = 64 -md=<字典大小> 设置字典大小,例如 -md=32m
-ms=<on|off> 是否固实压缩 -o<输出目录> 设置输出目录 -p[密码] 使用密码
-r[数字] 递归,使用数字定义递归子目录的深度 -sfx[<模块名称>] 使用自解压模块
-si 从标准输入设备读入数据 -so 将数据写入标准输出设备 -y 所有询问均回答Yes
-w<工作目录>
rar <子命令> [参数] <压缩包> [文件|文件列表|路径]
子命令
x 带路径解压 e 解压到当前目录 a 将文件添加到压缩包内 d 从压缩包中删除文件
u 更新压缩包内文件 f 更新压缩包内文件,并添加压缩包内不存在的文件 m 添加并删除源文件
r 修复 l 列表查看压缩包内文件信息 lt 更详细信息 lb 简短信息 c 添加压缩包注释
cf <文件名> 将文件内容添加为注释
cw <文件名> 将注释保存为文件
t 测试压缩包 rr 添加恢复纪录 rv 恢复到文件
参数
-p<密码> 设置密码
-m<0~5> 设置压缩级别,数字越大,压缩级别越高
软件安装与配置