程序的安装及管理

了解应用程序(软件),rpm管理命令,源码安装

1.了解应用程序

应用程序(app):安装在os上完成特定功能的软件。

应用程序的类型:*.rpm(redhat分支默认软件格式),*.deb(debian分支默认软件格式),源代码(通用的软件格式,也是生成rpm和deb的基础),其他自带安装程序及免安装的软件。

用户程序常用的目录:/etc,/var/log(日志文件),/usr/share/doc/(说明文档),/usr/bin(存放可运行的命令)


2.rpm管理命令:

1)了解rpm

a.rpm是redhat推出的包管理机制,作用是用数据记录软件的增删改查等信息方便维护,能自动分析软件间依赖关系,方便安装软件。

b.rpm软件的格式:

软件的名称-版本-发布次数-os的平台-硬件平台(32、64).rpm

i386/i586/i686=32位

x86_64=64位

zlib-devel-1.2.3-29.el6.x86_64.rpm
zlib-static-1.2.3-29.el6.x86_64.rpm
zsh-4.3.10-7.el6.x86_64.rpm
zsh-html-4.3.10-7.el6.x86_64.rpm

2)rpm查询功能:

语法:rpm  -q[子选项]  [软件包]

案例:

rpm -qa |grep man  ##查看man软件是否安装,-a列出所有安装软件

[root@leslie ~]# rpm -qa |grep man
pixman-0.26.2-5.el6_4.x86_64
man-1.6f-32.el6.x86_64
libsemanage-2.0.43-4.2.el6.x86_64


rpm -qi tar  ##查看软件信息

[root@leslie ~]# rpm -qi tar
Name        : tar                          Relocations: (not relocatable)
Version     : 1.23                              Vendor: CentOS
Release     : 11.el6                        Build Date: 2013年02月22日 星期五 10时26分10秒
Install Date: 2016年03月12日 星期六 04时33分49秒      Build Host: c6b9.bsys.dev.centos.org
Group       : Applications/Archiving        Source RPM: tar-1.23-11.el6.src.rpm
Size        : 2616001                          License: GPLv3+
Signature   : RSA/SHA1, 2013年02月24日 星期日 01时40分39秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.gnu.org/software/tar/
Summary     : A GNU file archiving program
Description :
The GNU tar program saves many files together in one archive and can
restore individual files (or all of the files) from that archive. Tar
can also be used to add supplemental files to an archive and to update
or list files in the archive. Tar includes multivolume support,
automatic archive compression/decompression, the ability to perform
remote archives, and the ability to perform incremental and full
backups.
If you want to use tar for remote backups, you also need to install
the rmt package.


rpm -ql tar  ##列出tar软件安装的所有的文件及目录-l列出软件的文件目录

[root@leslie ~]# rpm -ql tar
/bin/gtar
/bin/tar
/usr/share/doc/tar-1.23
/usr/share/doc/tar-1.23/AUTHORS
/usr/share/doc/tar-1.23/ChangeLog


rpm -qc vsftpd  ##只列出vsftpd软件的配置文件

[root@leslie ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf


rpm -qd vsftpd  ##只列出vsftpd软件的document(文档)

[root@leslie ~]# rpm -qd vsftpd
/usr/share/doc/vsftpd-2.2.2/AUDIT
/usr/share/doc/vsftpd-2.2.2/BENCHMARKS
/usr/share/doc/vsftpd-2.2.2/BUGS
/usr/share/doc/vsftpd-2.2.2/COPYING
/usr/share/doc/vsftpd-2.2.2/Changelog
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration

which useradd  ##查找命令的位置

[root@leslie ~]# which tar
/bin/tar
[root@leslie ~]# which useradd
/usr/sbin/useradd

rpm -qf $(which useradd)  ##查看命令由那个软件包安装,命令可替换为任意外部命令,然结合rpm -ql,和man扩展学习

[root@leslie ~]# rpm -qf $(which useradd)
shadow-utils-4.1.4.2-13.el6.x86_64
[root@leslie ~]# rpm -qf $(which passwd)
passwd-0.77-4.el6_2.2.x86_64

3)rpm安装升级卸载:

语法:rpm  [选项]  软件包

案例:

mount  /dev/cdrom /mnt  ##先放系统ISO,链接后在执行挂载系统光盘

ls /mnt  ##验证,Packages软件包存放位置,repodata软件仓库文件,p_w_picpath等引导文件

rpm -ivh  /mnt/Packages/vsftpd-tab补齐  ##安装vsftpd软件,-i表示安装,vh显示详细信息

[root@leslie ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
[root@leslie ~]# rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm 
warning: vsftpd-2.2.2-11.el6_4.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]

rpm -e  vsftpd  ##卸载vsftpd软件,-e表示卸载

rpm -F  /mnt/Packages/vsftpd-tab补齐  ##更新软件,没安装放弃

rpm -qa vsftpd  ##验证

[root@leslie ~]# rpm -qa |grep vsftpd
vsftpd-2.2.2-11.el6_4.1.x86_64
[root@leslie ~]# rpm -e vsftpd
[root@leslie ~]# rpm -qa |grep vsftpd

rpm -U  /mnt/Packages/vsftpd-tab补齐   ##升级软件,没安装则安装

rpm -qa vsftpd ##验证

[root@leslie ~]# rpm -U vsftpd-2.2.2-11.el6_4.1.x86_64.rpm 
warning: vsftpd-2.2.2-11.el6_4.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
[root@leslie ~]# rpm -qa |grep vsftpd
vsftpd-2.2.2-11.el6_4.1.x86_64

4)rpm的特殊用法

--force:强制安装,当软件已经安装但文件丢失重装时,旧覆盖新版本时使用。

--nodeps:忽略依赖关系,卸载时使用。

--import:导入系统iso公钥的。

--initdb/--rebuilddb:重建rpm数据库,当系统中病毒破坏了rpm数据时使用。

案例:

rpm -ivh /mnt/Packages/vsftpd-tab补齐

rm  -rf /etc/vsftpd  ##模拟文件丢失

rpm -ivh /mnt/Packages/vsftpd-tab补齐  --force   ##强制安装恢复文件

[root@leslie ~]# rpm -qa |grep vsftpd

vsftpd-2.2.2-11.el6_4.1.x86_64

[root@leslie ~]# rm -rf /etc/vsftpd
[root@leslie ~]# rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm 
warning: vsftpd-2.2.2-11.el6_4.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
package vsftpd-2.2.2-11.el6_4.1.x86_64 is already installed
[root@leslie ~]# rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm --force
warning: vsftpd-2.2.2-11.el6_4.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]
[root@leslie ~]#

rpm -e  vim-common  --nodeps  ##忽略依赖关系卸载

[root@leslie ~]# rpm -e vim-common
error: Failed dependencies:
vim-common = 2:7.2.411-1.8.el6 is needed by (installed) vim-enhanced-2:7.2.411-1.8.el6.x86_64
[root@leslie ~]# rpm -e vim-common --nodeps

rpm --import  /etc/pki/rpm-gpg/*   ##导入系统公钥,保证安装软件的安全

rpm  --initdb  ##重建rpm数据库

[root@leslie ~]# rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-
RPM-GPG-KEY-CentOS-6           RPM-GPG-KEY-CentOS-Security-6
RPM-GPG-KEY-CentOS-Debug-6     RPM-GPG-KEY-CentOS-Testing-6
[root@leslie ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 
[root@leslie ~]# rpm --initdb
[root@leslie ~]#