软件安装及管理

软件安装及管理
知识要点
软件的类型
RPM软件包安装及管理
Tar包安装、升级、卸载
脚本安装、升级、卸载
SRPM包安装
软件类型
软件是指计算机系统中的程序及其文档
程序必须装入机器内部才能工作
文档一般是给人看的,不一定装入机器
软件是用户与硬件之间的接口界面
系统软件(基础)和应用软件
软件开发:
程序开发:
资料开发:
测试
应用程序与系统命令的关系
文件位置
系统命令:一般在/bin(一般所有用户都可以使用)和/sbin(管理用户)目录中,或为Shell内部指令
应用程序:通常在/usr/bin和/usr/sbin目录中
主要用途
系统命令:完成对系统的基本管理工作,例如IP配置工具
应用程序:完成相对独立的其他辅助任务,例如网页浏览器
适用环境
系统命令:一般只在字符操作界面中运行
应用程序:根据实际需要,有些程序可在图形界面中运行
运行格式
系统命令:一般包括命令字、命令选项和命令参数
应用程序:通常没有固定的执行格式
典型应用程序的目录结构
文件类型
保存目录
普通执行程序文件
/usr/bin
服务器执行程序文件和管理程序文件
/usr/sbin
应用程序配置文件
/etc
日志文件
/var/log
应用程序文档文件
/usr/share/doc
应用程序手册页文件
/usr/share/man
软件包的封装类型
封装类型
说明
RPM软件包
扩展名为“.rpm”
SRPM软件包
包含原码(Source Code)的RPM文件
DEB软件包
扩展名为“.deb”
TAR软件包
一般为“.tar.gz”、“.tar.bz2”等格式的压缩包  包含程序的原始代码
提供安装程序的软件包
在压缩包内提供install.sh、setup等安装程序  或以“.bin”格式的单个执行文件提供
绿色免安装的软件包
在压缩包内提供已编译好的执行程序文件  解开压缩包后的文件即可直接使用
源代码编译概述
(tar包安装,没有加密,对外公开)
翻译-----编译和解释
时机不同
英文书
把所有的代码都翻译完成,再执行----编译
翻译一句,执行一句------解释
编译的运行速度快
方便开发:解释
编译器gcc
解释器shell
使用源代码安装软件的优点
获得最新的软件版本,及时修复bug
根据用户需要,灵活定制软件功能
应用场合举例
安装较新版本的应用程序时
自由软件的最新版本大都以源码的形式最先发布
当前安装的程序无法满足需要时
编译安装可由用户自行修改、定制功能
需要为应用程序添加新的功能时
用户可以重新配置、自由修改源代码,加入新的功能
编译安装源代码包
Tarball 封包:
.tar.gz 和 .tar.bz2 格式居多
软件素材参考:http://sourceforge.net
完整性校验
md5sum校验工具
计算MD5校验和,并与官方提供的值相比较,判断是否一致
确认源代码编译环境
需安装支持 C/C++程序语言的 编译器
gcc-4.1.1-52.el5、gcc-c++-4.1.1-52.el5
make-3.81-1.1.i386 ……
查询已经安装过哪些编译器
[root@localhost ~]# rpm -qa | grep gcc    //查询已经安装过哪些编译器
[root@localhost ~]# rpm -qa | grep make
[root@localhost ~]# gcc --version    //查看版本
编译安装过程
编译安装
编译安装注意事项
每一步骤成功执行是下一个步骤的基础
TAR包升级
利用patch命令打补丁
TAR包卸载
直接删除安装文件夹
少数软件执行make uninstall
安装httpd服务器 —— 编译安装
1. 解包
tar  zxvf httpd-2.2.20.tar.gz  -C  /usr/src/ 
2. 编译前的配置
cd  /usr/src/httpd-2.2.20 
./configure --prefix=/usr/local/apache 
3. 编译并安装
make && make install
&& 链接两个命令,有条件连接
|| 前面异常退出,后面才会执行,前面正常,后面不会在执行
4. 启动httpd服务
/usr/local/apache/bin/apachectl start 
源代码安装步骤
1、获取源代码的安装包
2、校验安装包的完整性
3、解压
4、进去解压出来的目录,查看README(INSTALL)文件,里面有安装步骤
5、配置 ./configure
6、编译 make
7、安装 make iinstall
8.测试
/usr/local/src
windos文件---->Linux
RPM 包管理工具
RPM Package Manager
由Red Hat公司提出,被众多Linux发行版所采用
建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系
RPM软件包
软件素材参考:http://rpmfind.net
一般命名格式:(文件名)
RPM 包安装管理软件
主要功能
1. 查询RPM软件、包文件的相关信息
2. 安装、升级、卸载RPM软件包
3. 维护RPM数据库信息
查询 RPM 软件信息
查询已安装的RPM软件信息
格式:rpm -q[子选项] [软件名]
用法:结合不同的子选项 完成不同查询
-qa:查看系统中已安装的 所有RPM 软件包列表
-qi:查看指定软件的详细信息
-ql:查询指定软件包所安装的目录、文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
查询文件/目录属于哪个RPM软件
格式:rpm -qf 文件或目录名
查询未安装的RPM包文件
格式:rpm -qp[子选项] RPM包文件
用法:结合不同的子选项 完成不同查询
-qpi:通过.rpm包文件查看该软件的详细信息
-qpl:查看.rpm安装包内所包含的目录、文件列表
-qpc:查看.rpm安装包内包含的配置文件列表
-qpd:查看.rpm安装包内包含的文档文件列表
安装和升级 rpm 包软件
安装或升级RPM软件
格式:rpm [选项] RPM包文件...
用法:不同选项适用于不同情况
-i:安装一个新的rpm软件包
-U:升级某个rpm软件,若原本未装,则进行安装
-F:更新某个rpm软件,若原本未装,则放弃安装
卸载指定的RPM软件
格式:rpm -e 软件名
安装和升级rpm包软件辅助选项
辅助选项
--force:强制安装所指定的rpm软件包
--nodeps:安装、升级或卸载软件时,忽略依赖关系
-h:以“#”号显示安装的进度
-v:显示安装过程中的详细信息
安装、升级、卸载 RPM 软件包
安装有依赖关系的多个软件时
被依赖的软件包需要先安装
同时指定多个.rpm包文件进行安装
卸载有依赖关系的多个软件时
依赖其他程序的软件包需要先卸载
同时指定多个软件名进行卸载
忽略依赖关系
结合“--nodeps”选项,但可能导致软件异常
维护 RPM 数据库
RPM数据库:/var/lib/rpm目录下
故障原因
非正常关机、误删除运行中的程序文件
RPM数据文件被误写或删除
当RPM数据库损坏时,需要进行数据库重建
格式:rpm --rebuilddb或者 rpm --initdb
脚本安装软件
脚本安装步骤
如果没有执行权限,需要给文件加上可执行属性:chmod +x filename
执行命令:./filename,执行安装脚本进行安装。
注意查看readme帮助文件
脚本安装案例
安装永中office
安装openoffice
绿色免安装软件
安装linuxqq
SRPM 包安装
RPM的缺点
安装的环境必须与打包时的环境需求一致或相当;
需要满足套件的相依属性需求;
卸载时需要特别小心,最底层的套件不可先移除,否则可能造成整个系统的问题!
SRPM
SRPM 文件里面含有源代码( Source Code )
SRPM 的文件名是以 ***.src.rpm 这种格式来命名
需要编译生成RPM包后才能进行安装
SRPM 包安装
使用rpmbuild命令安装SRPM包
选项:
--rebuild
进行‘编译’与‘打包’的动作,最后会产生 RPM 的软件包,但是产生的 RPM 软件包并没有安装到系统上。最后通常会发现一行字体:
Wrote: /usr/src/redhat/RPMS/i386/pkgname.i386.rpm
--recompile
rebuild 仅‘编译并打包’而已,而 recompile 不但进行编译跟打包,还同时进行‘安装’了!
命令范例:
# rpmbuild --rebuild rp-pppoe-3.5-32.1.src.rpm
本章总结
了解linux下软件常见安装包
熟练掌握rpm包的管理操作
熟练掌握tar包的安装管理操作
熟练掌握srpm包的制作和安装流程
作业
练习:
根据上述学过的知识安装好webmin-1600.tar.gz这个软件,并能成功运行这个软件
安装http示例
导入安装包
配置
编译
编译安装
启动
//导入源码包:
apr-1.5.2.tar.bz2
apr-util-1.5.4.tar.bz2
httpd-2.4.25.tar.bz2

//进入导入文件夹
[root@localhost ~]# cd /usr/local/src
[root@localhost src]# ls
apr-1.5.2          apr-util-1.5.4.tar.bz2        httpd-2.4.25.tar.bz2
apr-1.5.2.tar.bz2  bash-4.1.2-48.el6.x86_64.rpm
apr-util-1.5.4     httpd-2.4.25
//解压
[root@localhost src]# tar xf httpd-2.4.25.tar.bz2 
[root@localhost src]# ls
apr-1.5.2          apr-util-1.5.4.tar.bz2        httpd-2.4.25.tar.bz2
apr-1.5.2.tar.bz2  bash-4.1.2-48.el6.x86_64.rpm
apr-util-1.5.4     httpd-2.4.25
//查看解压文件
[root@localhost src]# cd httpd-2.4.25
[root@localhost httpd-2.4.25]# ls
ABOUT_APACHE CHANGES         httpd.dep       LICENSE README
acinclude.m4     CMakeLists.txt  httpd.dsp       Makefile       README.cmake
Apache-apr2.dsw  config.layout   httpd.mak       Makefile.in    README.platforms
Apache.dsw       config.log      httpd.spec      Makefile.win   ROADMAP
apache_probes.d  config.nice     include         modules        server
ap.d             config.status   INSTALL         modules.c      srclib
build            configure       InstallBin.dsp  modules.lo     support
BuildAll.dsp     configure.in    LAYOUT          modules.o      test
BuildBin.dsp     docs            libhttpd.dep    NOTICE VERSIONING
buildconf        emacs-style     libhttpd.dsp    NWGNUmakefile
buildmark.o      httpd           libhttpd.mak    os
//查看readme
[root@localhost httpd-2.4.25]# more README
[root@localhost httpd-2.4.25]# more INSTALL
//配置
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/apache
********
//报错:相关文件apr未安装
//安装相关文件apr
configure: error: APR not found.    Place read the documentation.
//查看相关文件安装包apr
[root@localhost httpd-2.4.25]# cd ..
[root@localhost src]# ls
apr-1.5.2          apr-util-1.5.4.tar.bz2        httpd-2.4.25.tar.bz2
apr-1.5.2.tar.bz2  bash-4.1.2-48.el6.x86_64.rpm
apr-util-1.5.4     httpd-2.4.25
//解压apr文件
[root@localhost src]# tar xf apr-1.5.2.tar.bz2
//进入/usr/local/src/apr-1.5.2,查看readme,,install
[root@localhost src]# cd apr-1.5.2
[root@localhost apr-1.5.2]# ls
apr-1-config    buildconf         emacs-mode     LICENSE        random
apr-config.in   build.conf        encoding       locks          README
apr-config.out  build-outputs.mk  exports.c      Makefile       README.cmake
apr.dep         CHANGES           export_vars.c  Makefile.in    shmem
apr.dsp         CMakeLists.txt    file_io        Makefile.win   strings
apr.dsw         config.layout     helpers        memory         support
apr.exp         config.log        include        misc           tables
apr.mak         config.nice       libapr-1.la    mmap           test
apr.pc          config.status     libapr.dep     network_io     threadproc
apr.pc.in       configure         libapr.dsp     NOTICE         time
apr.spec        configure.in      libapr.mak     NWGNUmakefile  tools
atomic          docs              libapr.rc      passwd         user
build           dso               libtool        poll
[root@localhost apr-1.5.2]# more README


***********************
Configuring and Building APR on Unix
====================================

Simply;

 ./configure --prefix=/desired/path/of/apr
   make
   make test
   make install
***********************
//安装到/usr/local/apr
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
************
//报错
checking for gcc .... no
checking for cc  ....no
//缺少编译环境gcc等
//先挂载光盘,挂载到/mnt/
[root@localhost apr-1.5.2]# mount /dev/sr0 /mnt/
//进入挂载点,/mnt/Packages/
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# ls
CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6
EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6
EULA RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6
GPL              repodata                  TRANS.TBL
images           RPM-GPG-KEY-CentOS-6
[root@localhost mnt]# cd Packages/
[root@localhost Packages]# ls
*********
//筛选gcc
[root@localhost Packages]# ls gcc*
gcc-4.4.7-17.el6.x86_64.rpm           gcc-java-4.4.7-17.el6.x86_64.rpm
gcc-c++-4.4.7-17.el6.x86_64.rpm       gcc-objc-4.4.7-17.el6.x86_64.rpm
gcc-gfortran-4.4.7-17.el6.x86_64.rpm  gcc-objc++-4.4.7-17.el6.x86_64.rpm
gcc-gnat-4.4.7-17.el6.x86_64.rpm
//安装gcc-4.4.7-17.el6.x86_64.rpm 
//rpm格式,直接rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm
[root@localhost Packages]# rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm
warning: gcc-4.4.7-17.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
error: Failed dependencies:
cloog-ppl >=0.15 is needed by gcc-4.4.7-17.el6.x86_64
cpp = 4.4.7-17.el6 is needed by gcc-4.4.7-17.el6.x86_64
//报错,依赖性文件未安装,需要安装依赖性文件
[root@localhost Packages]# rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm cloog-ppl-0.15.7-1.2.el6.x86_64.rpm 
//libppl.so******************代表缺少开发性软件:文件名含有*****-devel***
//继续安装相关依赖性文件
[root@localhost Packages]# rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm cloog-ppl-0.15.7-1.2.el6.x86_64.rpm cpp-4.4.7-17.el6.x86_64.rpm ppl-0.10.2-11.el6.x86_64.rpm gmp-devel-4.3.1-10.el6.x86_64.rpm mpfr-2.4.1-6.el6.x86_64.rpm
//安装完毕,安装顺序无所谓
//回到apr下开始安装
[root@localhost Packages]# cd /usr/local/src/
[root@localhost src]# ls
apr-1.5.2          apr-util-1.5.4.tar.bz2        httpd-2.4.25.tar.bz2
apr-1.5.2.tar.bz2  bash-4.1.2-48.el6.x86_64.rpm
apr-util-1.5.4     httpd-2.4.25
[root@localhost src]# cd apr-1.5.2
[root@localhost apr-1.5.2]# ls
apr-1-config    buildconf         emacs-mode     LICENSE        random
apr-config.in   build.conf        encoding       locks          README
apr-config.out  build-outputs.mk  exports.c      Makefile       README.cmake
apr.dep         CHANGES           export_vars.c  Makefile.in    shmem
apr.dsp         CMakeLists.txt    file_io        Makefile.win   strings
apr.dsw         config.layout     helpers        memory         support
apr.exp         config.log        include        misc           tables
apr.mak         config.nice       libapr-1.la    mmap           test
apr.pc          config.status     libapr.dep     network_io     threadproc
apr.pc.in       configure         libapr.dsp     NOTICE         time
apr.spec        configure.in      libapr.mak     NWGNUmakefile  tools
atomic          docs              libapr.rc      passwd         user
build           dso               libtool        poll
//开始安装
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
//安装成功
//开始编译,转换成二进制
[root@localhost apr-1.5.2]# make
//开始编译安装,创建安装目录,将编出来的二进制文件和配置文件复制到安装目录
[root@localhost apr-1.5.2]# make install
//apr安装成功
//返回httpd-2.4.25
[root@localhost apr-1.5.2]# cd ../
[root@localhost src]# ls
apr-1.5.2          apr-util-1.5.4.tar.bz2        httpd-2.4.25.tar.bz2
apr-1.5.2.tar.bz2  bash-4.1.2-48.el6.x86_64.rpm
apr-util-1.5.4     httpd-2.4.25
[root@localhost src]# cd httpd-2.4.25
//执行
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/apache
//报错,APR-util未安装,安装APR-util
configure: error: APR-util not found.   Please read the documentation.
[root@localhost httpd-2.4.25]#
//
[root@localhost httpd-2.4.25]# cd ..
[root@localhost src]# ls
apr-1.5.2          apr-util-1.5.4.tar.bz2        httpd-2.4.25.tar.bz2
apr-1.5.2.tar.bz2  bash-4.1.2-48.el6.x86_64.rpm
apr-util-1.5.4     httpd-2.4.25
[root@localhost src]# tar xf apr-util-1.5.4
//进入解压目录
[root@localhost src]# cd apr-util-1.5.4
[root@localhost apr-util-1.5.4]# ls
aprutil.dep     build-outputs.mk  export_vars.c      memcache
aprutil.dsp     CHANGES           export_vars.sh     misc
aprutil.dsw     CMakeLists.txt    export_vars.sh.in  NOTICE
aprutil.exp     config.layout     hooks              NWGNUmakefile
aprutil.mak     config.log        include README
apr-util.pc     config.nice       ldap               README.cmake
apr-util.pc.in  config.status     libaprutil-1.la    renames_pending
apr-util.spec   configure         libaprutil.dep     strmatch
apu-1-config    configure.in      libaprutil.dsp     test
apu-config.in   crypto            libaprutil.mak     uri
apu-config.out  dbd               libaprutil.rc      xlate
buckets         dbm               LICENSE            xml
build           docs              Makefile
buildconf       encoding          Makefile.in
build.conf      exports.c         Makefile.win
//执行
[root@localhost apr-util-1.5.4]#./configure
//报错
checking for APR... no
configure: error: APR could not be located. Please use the --with-apr option.
//手工指定apr路径
[root@localhost apr-util-1.5.4]# ./configure --with-apr=/usr/local/apr

//编译
[root@localhost apr-util-1.5.4]# make
//编译安装
[root@localhost apr-util-1.5.4]# make install
//回到 httpd-2.4.25
[root@localhostapr-util-1.5.4]# cd ../
[root@localhost src]# ls
apr-1.5.2          apr-util-1.5.4.tar.bz2        httpd-2.4.25.tar.bz2
apr-1.5.2.tar.bz2  bash-4.1.2-48.el6.x86_64.rpm
apr-util-1.5.4     httpd-2.4.25
[root@localhost src]# cd httpd-2.4.25
//继续执行
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apache
//报错,pcer没有找到
configure: error:  pcre-config for libpcre not found.
//光盘有,进入/mnt/Packages 
[root@localhost apr-util-1.5.4]# cd /mnt/
[root@localhost mnt]# ls
CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6
EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6
EULA RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6
GPL              repodata                  TRANS.TBL
images           RPM-GPG-KEY-CentOS-6
[root@localhost mnt]# cd Packages/
[root@localhost Packages]# ls
[root@localhost Packages]# ls pcre*
pcre-7.8-7.el6.x86_64.rpm  pcre-devel-7.8-7.el6.x86_64.rpm
//安装pcre-devel-7.8-7.el6.x86_64.rpm
[root@localhost Packages]# rpm -ivh pcre-devel-7.8-7.el6.x86_64.rpm
//回到 httpd-2.4.25
[root@localhost Packages]# cd
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# ls
apr-1.5.2          apr-util-1.5.4.tar.bz2        httpd-2.4.25.tar.bz2
apr-1.5.2.tar.bz2  bash-4.1.2-48.el6.x86_64.rpm
apr-util-1.5.4     httpd-2.4.25
[root@localhost src]# cd httpd-2.4.25
[root@localhost httpd-2.4.25]# 
//继续执行,编译前配置
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apache
//没有报错
//开始编译
[root@localhost httpd-2.4.25]# make
//编译安装
[root@localhost httpd-2.4.25]# make instal
//安装完成,进入安装目录
[root@localhost src]# cd httpd-2.4.25
[root@localhost httpd-2.4.25]# cd /usr/local/apache/
[root@localhost apache]# ls
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules
//进入/bin
[root@localhost apache]# cd bin
[root@localhost bin]# ls
ab         checkgid   envvars-std   htdbm     httpd       rotatelogs
apachectl  dbmmanage  fcgistarter   htdigest  httxt2dbm
apxs       envvars    htcacheclean  htpasswd  logresolve
//启动web服务,运行apachectl
[root@localhost bin]# ./apachectl start
//浏览器无法进入
//关闭防火墙
[root@localhost bin]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: 
 [ OK ]

//浏览器可以正常进入


//进入代码文件夹
[root@localhost apache]# cd htdocs/
[root@localhost htdocs]# ls
index.html
//编辑代码
[root@localhost htdocs]# vim index.html
/*
<html>
<head>
</head>
<body>
<h1>Welcome To ChinaITSoft!
press "yes" to enter main frame!
</h1>
<button>yes</button>
</body>
</html>
*/
//退出vim
//浏览器输入虚拟机地址:172.16.66.66

猜你喜欢

转载自www.cnblogs.com/qluzzh/p/10306179.html