安装及管理程序
安装及管理程序
1.Linux应用程序基础
1.1Linux命令与应用程序的关系
v应用程序与系统命令的关系
■ 文件位置
● 系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
● 应用程序:通常在/usr/bin和/usr/sbin目录中
■ 主要用途
● 系统命令:完成对系统的基本管理工作,例如IP配置工具
● 应用程序:完成相对独立的其他辅助任务,例如网页浏览器
■ 适用环境
● 系统命令:一般只在字符操作界面中运行
● 应用程序:根据实际需要,有些程序可在图形界面中运行
■ 运行格式
● 系统命令:一般包括命令字、命令选项和命令参数
● 应用程序:通常没有固定的执行格式
1.2Linux应用程序的组成
v典型应用程序的目录结构
1.3软件包的封装类型
2. 使用RPM包管理工具
2.1 RPM概述
vRPM Package Manager
■ 由Red Hat公司提出,被众多Linux发行版所采用
■ 建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系
vRPM软件包
■ 软件素材参考:http://rpmfind.net
■ 一般命名格式:
2.2使用RPM包管理命令——rpm
v主要功能
■ 1. 查询RPM软件、包文件的相关信息
■ 2. 安装、升级、卸载RPM软件包
■ 3. 维护RPM数据库信息
v查询已安装的RPM软件信息
■ 格式:rpm -q[子选项] [软件名]
■ 用法:结合不同的子选项 完成不同查询
● -qa:查看系统中已安装的所有RPM软件包列表
● -qi:查看指定软件的详细信息
● -ql:查询指定软件包所安装的目录、文件列表
● -qc:仅显示指定软件包安装的配置文件
● -qd:仅显示指定软件包安装的文档文件
v查询文件或目录属于哪个RPM软件
■ 格式:rpm -qf 文件或目录名
[root@sky ~] # rpm -q bash <==查询是否已安装有bash软件包 bash-4.1.2-14.el6.x86_64 [root@sky ~] # rpm -qa | grep bash bash-4.1.2-14.el6.x86_64 |
[root@sky ~] # rpm -qf /usr/bin/vim <==查询vim是由哪个软件包安装的 vim - enhanced -7.0.109-3 |
[root@sky ~] # rpm -ql dhcp <==查询dhcp软件包安装的文件列表 /etc/dhcpd.conf /etc/rc.d/init.d/dhcpd |
v查询未安装的RPM包文件
■ 格式:rpm -qp[子选项] RPM包文件
■ 用法:结合不同的子选项 完成不同查询
● -qpi:通过.rpm包文件查看该软件的详细信息
● -qpl:查看.rpm安装包内所包含的目录、文件列表
● -qpc:查看.rpm安装包内包含的配置文件列表
● -qpd:查看.rpm安装包内包含的文档文件列表
[root@localhost Server] # rpm -qpi ethtool-6-4.el5.i386.rpm warning: ethtool-6-4.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Name : ethtool Relocations: (not relocatable) Version : 6 Vendor: Red Hat, Inc. Release : 4.el5 Build Date: 2009年12月22日 星期二 02时55分30秒 …… |
[root@localhost Server]
# rpm -qpl ethtool-6-4.el5.i386.rpm
/sbin/ethtool
/usr/sbin/ethtool
/usr/share/doc/ethtool-6
/usr/share/doc/ethtool-6/AUTHORS
……
v安装或升级RPM软件
■ 格式:rpm [选项] RPM包文件...
■ 用法:不同选项适用于不同情况
● -i:安装一个新的rpm软件包
● -U:升级某个rpm软件,若原本未装,则进行安装
● -F:更新某个rpm软件,若原本未装,则放弃安装
v卸载指定的RPM软件
■ 格式:rpm -e 软件名
v辅助选项
■ --force:强制安装所指定的rpm软件包
■ --nodeps:安装、升级或卸载软件时,忽略依赖关系
■ -h:以“#”号显示安装的进度
■ -v:显示安装过程中的详细信息
[root@sky ~] #rpm -ivh /media/cdrom/Server/lynx-2.8.5-28.1.el5_2.1.i386.rpm <==安装lynx软件包同时显示安装进度 warning: /media/cdrom/Server/lynx-2.8.5-28.1.el5_2.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%] 1:lynx ########################################### [100%] |
[root@sky ~] # rpm -q lynx lynx-2.8.5-28.1 [root@sky ~] # rpm -e lynx <==卸载lynx软件包 [root@sky ~] # rpm -q lynx package lynx is not installed |
v重建RPM数据库
[root@sky ~] # rpm --rebuilddb 或 [root@sky ~] # rpm --initdb |
#导入验证公钥
[root@localhost ~] # rpm --import /media/cdrom/RPM-GPG-KEY-redhat-release |
v安装有依赖关系的多个软件时
■ 被依赖的软件包需要先安装
■ 同时指定多个.rpm包文件进行安装
v卸载有依赖关系的多个软件时
■ 依赖其他程序的软件包需要先卸载
■ 同时指定多个软件名进行卸载
v忽略依赖关系
■ 结合“--nodeps”选项,但可能导致软件异常
3. 冲源代码编译安装程序
3.1源代码编译概述
v使用源代码安装软件的优点
■ 获得最新的软件版本,及时修复bug
■ 根据用户需要,灵活定制软件功能
v应用场合举例
■ 安装较新版本的应用程序时
● 自由软件的最新版本大都以源码的形式最先发布
■ 当前安装的程序无法满足需要时
● 编译安装可由用户自行修改、定制功能
■ 需要为应用程序添加新的功能时
● 用户可以重新配置、自由修改源代码,加入新的功能
vTarball 封包:
■ .tar.gz 和 .tar.bz2 格式居多
■ 软件素材参考:http://sourceforge.net
v完整性校验
■ md5sum校验工具
● 计算MD5校验和,并与官方提供的值相比较,判断是否一致
[root@sky ~] # md5sum axel-1.0a.tar.gz 2d94c0b36b374834567f1fcec5f89119 axel-1.0a.tar.gz <==MD5校验和 |
v确认源代码编译环境
■ 需安装支持 C/C++程序语言的 编译器
● gcc-4.1.1-52.el5、gcc-c++-4.1.1-52.el5
● make-3.81-1.1.i386 ……
[root@localhost ~] # gcc --version gcc (GCC) 4.1.1 20070105 (Red Hat 4.1.1-52) Copyright (C) 2006 Free Software Foundation, Inc. 本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保; 包括没有适销性和某一专用目的下的适用性担保。 [root@localhost ~] # g++ --version g++ (GCC) 4.1.1 20070105 (Red Hat 4.1.1-52) …… |
3.2 编译安装的基本过程
v1. 解包
■ 习惯上将软件包释放到 /usr/src/目录
■ 解包后的源代码文件位置:
● /usr/src/软件名-版本号/
[root@sky ~] # tar zxf zhcon-0.2.5.tar.gz -C /usr/src/ <==“-C”解压源代码包,并指定释放目录 [root@sky ~] # gzip -d zhcon-0.2.5-to-0.2.6.diff.gz [root@sky ~] # cp zhcon-0.2.5-to-0.2.6.diff /usr/src/ [root@sky ~] # ls /usr/src/ kernels redhat zhcon-0.2.5 zhcon-0.2.5 -to -0.2.6. diff |
v2. 配置
■ 使用源码目录中的 configure 脚本
■ 执行“./configure --help” 可以查看帮助
■ 典型的配置选项:
● --prefix=软件安装目录
[root@localhost ~] # cd /usr/src/zhcon-0.2.5/ <==切换到源代码所在目录 [root@localhost zhcon-0.2.5] # patch -p1 < /usr/src/zhcon-0.2.5-to-0.2.6.diff <==通过patch命令对源代码包打补丁 patching file ChangeLog …… [root@localhost zhcon-0.2.5] # ./configure --prefix=/usr/local/zhcon <==若不指定任何配置选项,将采用默认值 checking for a BSD -compatible install... /usr/bin/install –c …… |
v3. 编译
■ 执行 make 命令
v4. 安装
■ 执行 make install 命令
[root@sky zhcon-0.2.5] # make [root@sky zhcon-0.2.5] # make install |
v验证已编译安装完成的程序
■ 查看安装后的软件目录、了解软件程序的使用方法
[root@sky ~] # ls /usr/local/zhcon/ bin etc lib man [root@sky ~] # /usr/local/zhcon/bin/zhcon --help zhcon A Fast CJK Console Environment Usage: zhcon [OPTIONS]... [FILES]... -h , - -help Print help and exit -V , - -version Print version and exit --utf8 use iconv filter to convert UTF-8 stream from/to system encoding (default=off) …… |
#zhcon中文虚拟控制台提供了全拼、五笔、双拼等中文输入环境,但需要先执行“kbd_mode -a”命令设置使用ASCII键盘模式,以便能够正常使用输入法切换热键
#使用快捷键Ctrl+Space可打开/关闭中文输入法,使用快捷键Ctrl+D可以退出zhcon控制台;Ctrl+Shift可在不同的输入法之间进行切换,也可以使用快捷键Ctrl+Alt+1、Ctrl+Alt+2直接切换至全拼、五笔输入法。