Linux学习笔记十:软件包管理

在Linux的众多版本中,可以大致分成两个系列,分别是:RedHat系Linux,Debian系Linux。在这两种不同系的Linux中,软件包的管理也是有着一定的区别,但他们的原理都大致相同。这篇笔记将以RedHat系Linux为重点讲解其软件包的管理,并简单介绍Debian系Linux软件包的管理。其大致的结构如下:

· RedHat系Linux软件包管理

- 1. 二进制包管理(基于rpm)

- 2. 二进制包管理(基于yum)

- 3. 源代码包管理

- 4. 脚本安装

· Debian系Linux软件包管理

- 5. APT包管理

1、二进制包管理(基于rpm、yum包管理工具)

rpm、yum是RedHat系列Linux下最常用的二进制包管理工具。yum与rpm的不同之处在于,yum可以解决安装二进制包时的依赖问题以及软件的升级问题。

- 卸载

格式:rpm -e [参数] [软件名]

范例:#rpm -e sudo  卸载名为sudo的软件

注:“--nodeps” 参数可以强行卸载该软件,而不检查其他软件与它的依赖关系。

- 安装

格式:rpm [参数] [软件文件名]

参数:-i 表示安装(必须)  -v 表示显示安装的详细信息(可选)  -h 显示安装进度(可选)

范例:#rpm -ivh sudo-1.7.2p1-5.e15.i386.rpm

此外,还有其他参数可选:

--excludedocs 不安装软件包中的文档文件

范例:#rpm -ivh --excludedocs sudo-1.7.2p1-5.e15.i386.rpm

--prefix path 将软件包安装到path指定的路径下

范例:#rpm -ivh --prefix=/usr/local/sudo sudo-1.7.2p1-5.e15.i386.rpm 将sudo软件安装到/usr/local/sudo目录下

--test 只对安装进行测试,并不实际安装

范例:#rpm -ivh --test sudo-1.7.2p1-5.e15.i386.rpm 测试安装sudo软件

--replacepkgs 当软件包已被安装时,覆盖安装该软件包。

范例:#rpm -ivh --replacepkgs sudo-1.7.2p1-5.e15.i386.rpm 覆盖安装sudo软件

--replacefiles

要安装的软件包中有一个文件已在安装其它软件包时安装,会出现文件冲突错误,使用这个参数可以让rpm忽略该错误

范例:#rpm -ivh --replacefiles sudo-1.7.2p1-5.e15.i386.rpm 忽略文件冲突错误

--nodeps 忽略未解决的依赖关系

范例:#rpm -ivh --nodeps sudo-1.7.2p1-5.e15.i386.rpm

- 查询是否安装了某个软件

格式:rpm -q [软件名称]

范例:rpm -q sudo 查询是否安装了sudo这个软件

- 查询素有已安装的软件包

格式:rpm -qa  (a 表示 all)

范例:rpm -qa

可以与grep连用,查询所有已安装软件中有某个关键字的软件,如:

rpm -qa | grep samba 查询已安装的所有软件包中有关键字samba的。

- 升级软件包

范例:#rpm -Uvh sudo-1.7.2p1-5.e15.i386.rpm

其中-U表示升级软件包(必须的参数)  -v 表示显示安装的详细信息(可选)  -h 显示安装进度(可选)

- rpm包查询

选项:-a 查询所有已安装的软件包

     -f 查询文件所属软件包

   -p 查询软件包

     -i 显示软件包信息

    -l 显示软件包中的文件列表

     -d 显示被批注为文档的文件列表

     -c 显示被批注为配置文件的文件列表

常用组合:

rpm -qf  查询文件隶书的软件包(father)

rpm -qi 或 rpm -qip  查询软件包信息(该软件包未安装。查询未安装软件的信息要加上p参数,下同)(info)

rpm -ql 或 rpm -qlp  查询软件包安装文件(list)

rpm -qd 或 rpm -qdp 查询软件包帮助文档(document)

rpm -qc 或 rpm -qcp 查询软件包配置文件(config)

范例:

#rpm -qf /etc/services 查询services文件隶书的软件包

#rpm -qi samba 查询samba软件包的信息

#rpm -ql sudo 查询sudo软件包安装了多少文件

#rpm -qd vsftpd 查询vsftpd软件帮助文档的位置

#rpm -qc sudo 查询sudo软件配置文件的位置

- 软件包校验

格式:rpm -V [软件名称]

范例:#rpm -V sudo 查询sudo软件的安装文件是否被更改过

输出:S.5......T c /etc/sudoers

输出字符串的含义如下:

5  文件的md5校验值(内容改变)

S  文件大小     L  链接文件     T 文件的创建或修改时间

D 设备文件     U 文件的用户   G 文件的用户组     M 文件的权限

上面范例的输出字符串表示:文件大小被改变,文件内容也被改变,并且文件的创建或修改时间被改变。

- 软件包文件提取

范例:解压所有文件到当前目录

#rpm2cpio initscripts-8.45.30-2.e15.centos.i386.rpm | cpio -idv

解压指定文件到当前目录下的etc/inittab目录下

#rpm2cpio initscripts-8.45.30-2.e15.centos.i386.rpm | cpio -idv ./etc/inittab

其中 v 表示显示详细信息,d 表示解压缩时保留目录结构,i 表示解压缩

2、二进制包管理(基于yum)

- 安装 yum install 

范例:yum install sudo 安装sudo软件(自动从互联网下载,并解决依赖关系)

- 检测升级 yum check-update

范例:yum check-update sudo

- 升级 yum update

范例:yum update sudo 升级sudo软件

- 查询软件包信息 yum list

范例:yum list 查询yum源上所有软件包

- 软件包信息 yum info

范例:yum info sudo 查询sudo的软件包信息

- 卸载 yum remove 

范例:yum remove sudo 删除sudo软件包

3、源代码包管理

下面以proftd源代码包的安装为例,说明源代码包的安装步骤:

#tar -xzvf proftpd-1.3.3d.tar.gz  //解压缩包
#cd proftpd-1.3.3d
#.configure --prefix=/usr/local/proftd //配置信息,prefix参数指定源代码包安装位置
#make        //编译
#make install  //安装

其中配置环节是让软件去收集系统的信息,以便后面进行编译操作。

4、脚本安装

脚本安装就是软件编写者写好一个shell脚本或者java脚本,你只需要输入一些简单的信息便可直接安装。这种安装方式方便简单,类似于Wins下的安装方式。

下面以webmin的安装为例讲解脚本安装的步骤:

#tar -xzvf webmin-1.530.tar.gz  //解压缩
#cd webmin-1.530
#vi README //通过查看说明文件,可以查看安装的脚本是哪个(或者是INSTALL帮助文件)
#./setup.sh  //执行安装脚本(通过README帮助文件查找得知)

5、APT包管理方式

APT包管理方式是Debian系Linux系列的二进制包管理方式。

其命令与arp包管理方式差不多,只不过是rpm前缀换成了apt-cache而已。

APT包管理方式的命令如下:

apt-cache search   搜索软件包

apt-cache show     软件包信息

apt-get install   安装(-f 参数可以强制安装)

apt-get reinstall 覆盖安装(-f 参数可以强制重新安装)

apt-get remove 删除

apt-get autoremove 自动删除(MARK  --purge)

apt-get update 更新软件源

apt-get upgrade 更新已安装包

时间: 2024-12-18 02:49:37

Linux学习笔记十:软件包管理的相关文章

linux学习笔记(软件包管理)

前言:运维工程师平时安装服务时很正常的事情,所以软件包的管理就显得尤为重要. 内容: 基础知识. 程序发行的源代码都是不可以运行的,需要编译之后才可以运行,linux发行版的厂商会在他的机器上进行编译然后提供下载使用,用户可以直接拿到二进制的可执行文件进行使用. 通过file可以看到文件时不是可执行文件( ELF 32-bit LSB)是可执行文件,shared libs是使用了共享库.shell脚本显示Bourne-Again是应为#!/bin/bash的原因. 程序的组成部分:1.二进制程序

linux学习笔记之软件包管理

软件包管理 软件包组成 二进制程序 配置文件 单文件 将主配置文件切割成多个小文件,并放置于某个目录中. /etc/profile ,/etc/profile.d/* /etc/pam.conf , /etc/pam.d/* 单文件,在内部分割成多个片段. [mysql] [mysqld]... 库文件: 二进制 可执行  函数(c程序都由函数组成) 共享模块 静态库 动态库 帮助文件 手册页 文档(/usr/share/doc) /bin /sbin 系统启动使用 /usr/bin  /usr

Linux学习笔记一 磁盘管理常用命令

Linux学习笔记一 磁盘管理常用命令 Linux系统下,一切均是文件,磁盘是一种特殊的块设备文件. 常用的硬盘接口类型 并口:IDE ,SCSI 串口:SATA,SAS 磁盘设备文件设备文件的命令规则: IDE: 设备名为/dev/hda, /dev/hdb-.  (末尾的a ,b-代表不同的IDE硬盘) SCSI:设备名为/dev/sda, /dev/sdb-.(末尾的a,b-代表不用的SCSI硬盘 机械式硬盘: track: 磁道(盘面上由外向里划分成不同的磁道) cylinder: 柱面

Linux学习笔记十:Linux用户管理

本笔记说的Linux用户管理主要包括以下内容: 1.用户配置文件(/etc/passwd  /etc/shadow) 2.组配置文件(/etc/group  /etc/gshadow) 3.用户缺省配置文件(/etc/login.defs  /etc/default/useradd) 4./etc/motd文件./etc/issue文件 5.SetUID权限.SetGID权限.黏着位 6.典型案例之一:手动创建一个用户 7.典型案例之二:批量添加用户 8.典型案例之三:限制用户使用su 9.典型

Linux学习笔记<十二>——磁盘管理

设备文件: b:块文件,按块为单位,随机访问的设备,如磁盘 c:字符文件,按字符为单位,访问有先后次序的线性设备,如键盘 ls -l查看设备文件,原显示大小的列改显示为 主设备号(major number) 用于标识设备类型 次设备号(minor number) 用于标识同一种类型的不同设备 mknod 创建块或字符设备文件 mknod [OPTION]... NAME TYPE [MAJOR MINOR] -m MODE 指定权限 例子:mknod -m 640 mydev c 66 0 硬盘

linux学习笔记 yum 在线管理软件包

-y  如果yum在工作过程中需要使用者响应.这个参数可以直接回答yes #yum list 列出资源库中所有可安装或者可更新的rpm包 #yum perl 列出为perl的包 #yum perl* 列出为perl开头的包 #yum install perl 安装perl包 #yum remove perl*删除perl-*所有的包 #yum check-update 检查可以更新的rpm包 #yum update 更新所有rpm包 #yum update kernel kernel_sourc

Linux学习笔记十二:进程管理

1.查看进程 第一种,用w查看进程: [[email protected] ~]# w 05:22:23 up 14 min, 2 users, load average: 0.00, 0.02, 0.06 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT chenyr tty1 :0 05:08 14:38 2.35s 0.23s pam: gdm-passwo chanshuy pts/0 192.168.230.1 05:09 0.00

Linux学习笔记<十六>——进程管理

Process/Thread Model Stopped:进程收到停止信号后停止运行 Ready:正在运行 Executing正在运行队列中等待 Uninterruptible sleep:不可终端指的不是CPU不响应外部硬件的中断,而是进程不响应异步信号 Interruptible sleep:等待某些事件的发生而被挂起 Zombie:进程已终止,但进程的进程控制块(以及少数资源)没被回收 程序优先级,数字越小,越优先,更优先获得运行的机会,获得更多的CPU运行时间 0-99:内核控制 100

Linux学习笔记(四)账号管理之管理用户账号

1.管理用户账号:每一个登录Linux操作系统的用户在系统中都应该有其对应的注册账号,这些账号记录了用户的信息,如用户名.登录口令.用户目录所在位置.所用的shell.建立时间.权限等信息.其中用户账号管理包括:添加用户.设置口令.删除用户,修改用户属性和权限等.因此,账号管理是系统管理员重要的日常工作之一. (1).添加用户:其中超级用户的账号在Linux系统安装时已经创建了,即root用户,但超级用户的权限太大不适合给普通用户使用,否则会对Linux系统安全造成威胁:因此,所有要使用Linu