首页 > 代码库 > 软件安装与配置

软件安装与配置

软件安装

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 <子命令> [参数] <压缩包> [文件]

子命令

添加       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 <子命令> [参数] <压缩包> [文件|文件列表|路径]

子命令

带路径解压              e 解压到当前目录               a 将文件添加到压缩包内            d 从压缩包中删除文件

更新压缩包内文件           f 更新压缩包内文件,并添加压缩包内不存在的文件            m 添加并删除源文件

修复                l 列表查看压缩包内文件信息 lt 更详细信息 lb 简短信息            c 添加压缩包注释

cf <文件名> 将文件内容添加为注释

cw <文件名> 将注释保存为文件

t 测试压缩包              rr 添加恢复纪录                  rv 恢复到文件  

参数

-p<密码> 设置密码

-m<0~5> 设置压缩级别,数字越大,压缩级别越高

 

软件安装与配置