文档章节

[Linux学习笔记] Linux软件包管理

LSantorini
 LSantorini
发布于 2015/11/28 21:59
字数 1482
阅读 78
收藏 9

Linux软件包管理:

在讲解如何使用rpm,yum来管理软件包前,我们先来看一个很重要的知识点,如何挂在光盘。

实验环境下,首先要将CentOS安装镜像光盘载入,如下截图:

注意: 此时CentOS系统处于已启动状态.

挂载光盘:

[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only

另外接下来讲解软件包的管理,我们将以 sudo-1.8.6p7-13.el7.x86_64.rpm(sudo命令用来获取临时的root权限,为系统缺省装) 为例讲解。

RPM包管理:

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序". 

(1) 卸载

命令: rpm -e [rpm软件包名称简写]
举例:
[root@localhost ~]# rpm -e sudo
[root@localhost ~]# rpm -evh sudo     #显示卸载进度

注意: 如果与其他软件包有依赖关系,卸载时会产生提示信息,可使用 --nodeps 强行卸载.

(2) 安装

命令: rpm -ivh [rpm软件包名称全写]
说明: ivh: 安装显示安装进度 --install --verbose --hash

我们将从CentOS系统关盘安装sudo-1.8.6p7-13.el7.x86_64.rpm软件包,首先要完成上述挂载光盘

[root@localhost home]# cd /mnt/cdrom/
[root@localhost cdrom]# ls
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@localhost cdrom]# cd Packages/
[root@localhost Packages]# ls | grep sudo    #找到sudo的rpm软件包
sudo-1.8.6p7-13.el7.x86_64.rpm
[root@localhost Packages]# rpm -ivh sudo-1.8.6p7-13.el7.x86_64.rpm    #安装sudo的rpm软件包
Preparing...                          ################################# [100%]
Updating / installing...
   1:sudo-1.8.6p7-13.el7              ################################# [100%]

注意: CentOS-7系统将系统安装时缺省的软件包放到了/Packages目录,而CentOS-7之前的版本将自带的软件包放置于/CentOS目录,本节中我们以CentOS-7为例

(3) 查询

命令: rpm -q [rpm软件包名称简写]
选项:
-a    查询所有已安装的软件包
-f    查询文件所属软件包
-p    查询软件包  
-i    显示软件包信息
-l    显示软件包中的文件列表
-d    显示被标注为文档的文件列表
-c    显示被标注为配置文件的文件列表
查询案例:
1.查询文件隶属的软件包: rpm -qf
2.查询软件包信息: rpm -qi、rpm -qip(i表示information, p表示package)
3.查询软件包安装文件: rpm -ql、rpm -qlp(l表示list, list files in package)
4.查询软件包帮助文档: rpm -qd(d表示document files)
5.查询软件包配置文件: rpm -qc(c表示config files)
举例:
[root@localhost Packages]# rpm -q sudo
sudo-1.8.6p7-13.el7.x86_64

rpm其他安装选项:

--excludedocs    不安装软件包的文档文件
--prifix PTAH    将软件包安装到由PATH指定的路径下
--test           只对安装进行测试,并不实际安装
--replacepkgs    覆盖安装软件包
--replacefiles   出现文件冲突,忽略冲突信息覆盖安装
--nodeps         RPM软件包可能依赖于其他软件包,在安装了特定的软件包之后才能安装该软件包.使用--nodeps强制安装

(4) 升级

命令: rpm -Uvh [软件包名称全写]
举例:
[root@localhost Packages]# rpm -Uvh sudo-1.8.6p7-13.el7.x86_64.rpm

(5) 校验

命令: rpm -V 软件名称
校验结果说明:
S    文件大小
M    文件的权限
5    文件的md5校验值
L    链接文件
T    文件的创建时间
D    设备文件
U    文件的用户
G    文件的用户组

(6) 软件包文件提取

解压所有文件到当前目录:
#rpm2cpio /mnt/cdrom/Packages/initscripts-9.49.24-1.el7.x86_64.rpm | cpio -idv
解压指定文件到当前目录:
#rpm2cpio /mnt/cdrom/Packages/initscripts-9.49.24-1.el7.x86_64.rpm | cpio -idv ./etc/inittab

注意: 为扩展,有了软件包文件的提取,如此我们就可以恢复系统中或软件中被修改、篡改或删除的文件了. 步骤如下:

1.rpm -V命令校验,查看软件包文件的状态;
2.使用rpm2cpio提取指定文件
3.替换或覆盖需要恢复的文件

YUM包管理:

[百度百科] Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装. 

安装: yum install
检测升级: yum check-update
升级: yum update
软件包查询: yum list
软件包信息: yum info
卸载: yum remove
帮助: yum --help, man yum

源代码包安装与卸载:

以proftpd为例来说明源代码包的安装与卸载。

(1)源代码包的安装:
[root@localhost proftpd]# ls
proftpd-1.3.4b.tar.gz
[root@localhost proftpd]# tar -zxvf proftpd-1.3.4b.tar.gz 
[root@localhost proftpd]# ls
proftpd-1.3.4b  proftpd-1.3.4b.tar.gz
[root@localhost proftpd]# cd proftpd-1.3.4b/
[root@localhost proftpd-1.3.4b]# ls
acconfig.h    configure     include     m4             README               README.DSO      README.PAM             src
aclocal.m4    configure.in  INSTALL     Makefile.in    README.AIX           README.facl     README.ports           stamp-h.in
ChangeLog     contrib       install-sh  Make.rules.in  README.capabilities  README.FreeBSD  README.Solaris2.5x     tests
config.guess  COPYING       lib         modules        README.classes       README.IPv6     README.Unixware        utils
config.h.in   CREDITS       locale      NEWS           README.controls      README.LDAP     RELEASE_NOTES
config.sub    doc           ltmain.sh   proftpd.spec   README.cygwin        README.modules  sample-configurations
[root@localhost proftpd-1.3.4b]# ./configure --prefix=/usr/local/proftpd    #配置
[root@localhost proftpd-1.3.4b]# make
[root@localhost proftpd-1.3.4b]# make install

(2)源代码包的卸载:
[root@localhost local]# ls -l | grep proftpd
drwxr-xr-x. 10 root root 97 Nov 28 09:56 proftpd
[root@localhost local]# rm -rf proftpd/

脚本安装与卸载:

以webmin为例来说明脚本安装与卸载。

[root@localhost webmin]# ls
webmin-1.740.tar.gz
[root@localhost webmin]# tar -zxvf webmin-1.740.tar.gz
[root@localhost webmin]# ls
webmin-1.740  webmin-1.740.tar.gz
[root@localhost webmin]# cd webmin-1.740/
[root@localhost webmin-1.740]# ./setup.sh
安装中...
安装过程中会显示:
Creating uninstall script /etc/webmin/uninstall.sh ..
..done
如此我们可以使用/etc/webmin/uninstall.sh来卸载webmin

注意: CentOS在webmin安装后外部主机不能访问,原因是CentOS中的防火墙规则较严密,需要将10000端口加入信任端口,

[root@localhost webmin]# cd /etc/sysconfig/
[root@localhost sysconfig]# iptables -I INPUT -p TCP --dport 10000 -j ACCEPT











© 著作权归作者所有

共有 人打赏支持
LSantorini
粉丝 12
博文 34
码字总数 38213
作品 0
呼和浩特
程序员
私信 提问
Yoda:您的 Linux 系统命令行个人助理

不久前,我们介绍了一个名为 “Betty” 的命令行虚拟助手。今天,我偶然发现了一个类似的实用程序,叫做 “Yoda”。Yoda 是一个命令行个人助理,可以帮助您在 Linux 中完成一些琐碎的任务。它...

作者: Sk
04/29
0
0
linux 系统常用的C语言函数库

pkg-config --list-all 查看系统己安装库(yum install pkgconfig sudo apt-get install pkgconfig) Linux From Scratch http://man.chinaunix.net/linux/lfs/htmlbook/index.html LINUX 文档......

慎道
2011/07/12
0
0
KVM虚拟化学习笔记系列文章列表

kvm虚拟化学习笔记(一)之kvm虚拟化环境安装 http://koumm.blog.51cto.com/703525/1288795 kvm虚拟化学习笔记(二)之linux kvm虚拟机安装 http://koumm.blog.51cto.com/703525/1289627 kvm虚拟...

蓝狐乐队
2015/03/19
0
0
Linux学习笔记(六)——应用程序安装

                  安装及管理应用程序   同windows操作系统一样,使用一个操作系统,肯定要安装一些软件,这篇随笔主要介绍Linux上软件的安装。首先我们应该了解Linux...

zhoujie0111
2013/03/23
0
0
Linux命令行是什么?Linux云计算运维学习

Linux是—个主要通过命令行来进行管理的操作系统,即通过键盘输入指令来管理系统的相关操作,这和Windows系统使用鼠标命击的可视化管理大不相同。 使用鼠标可视化管理的优势是简单、容易上手...

老男孩Linux培训
06/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(三)之NioEventLoop的线程(或者reactor线程)启动(一)

在第一章中,我们看关于NioEventLoopGroup的初始化,我们知道了NioEventLoopGroup对象中有一组EventLoop数组,并且数组中的每个EventLoop对象都对应一个线程FastThreadLocalThread,那么这个...

天空小小
今天
3
0
PHP动态扩展Redis模块

查看已有模块 [root@test-a ~]# /usr/local/php/bin/php -m[PHP Modules]bz2Core...zlib[Zend Modules] 下载包,解压,生成configure文件 [root@test-a ~]# cd /usr/local/src/[ro......

野雪球
今天
3
0
在Ignite中使用线性回归算法

在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法。 如果要找合适的数据集,会发现可用的有很多,但是对于...

李玉珏
今天
5
0
Mybatis应用学习——简单使用示例

1. 传统JDBC程序中存在的问题 1. 一个简单的JDBC程序示例: public class JDBCDemo {public static void main(String[] args) {Connection con=null;PreparedStatement statemen...

江左煤郎
今天
4
0
使用JavaScript编写iOS应用业务逻辑

JSAUIKitCocoa使你可以使用JavaScript编写对性能要求不高但可能变动性很大的iOS应用的业务逻辑部分,View组件、需要多线程支持的Model等则直接使用原生对象。 编写方式与React Native相似,但...

neal01
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部