Linux软件管理

软件管理

一、软件包管理简介

1、软件包分类

  • 源码包
    • 脚本安装包
  • 二进制包(RPM包、系统默认包)

2、源码包

源码包的优点是:

  • 开源,如果有足够的能力,可以修改源代码
  • 可以自由选择所需的功能
  • 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
  • 卸载方便

源码包的缺点

  • 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
  • 编译过程时间较长,安装比二进制安装时间长
  • 因为是编译安装,安装过程中一旦报错新手很难解决

3、RPM包

二进制包的优点

  • 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
  • 安装速度比源码包安装快的多

二进制包缺点:

  • 经过编译,不再可以看到源代码
  • 功能选择不如源码包灵活
  • 依赖性

二、RPM包管理-rpm命令管理

1、RPM包命名原则

httpd-2.2.15-15.el6.centos.1.i686.rpm

httpd

软件包名

2.2.15

软件版本

15

软件发布的次数

el6.centos

适合的Linux平台

i686

适合的硬件平台

rpm

rpm包扩展名

2、RPM包依赖性

  • 树形依赖:a——b——c
  • 环形依赖:a——b——c——a
  • 模块依赖:模块依赖查询网站:www.rpmfind.net

libapr-1.so.0——apr-1.2.7-11.el5_5.3.i386.rpm

libaprutil-1.so.0——apr-util-1.2.7-11.el5_5.2.i386.rpm

libpq.so.4——postgresql-libs-8.1.22-1.el5_5.1.i386.rpm

libgmp.so.3——gmp-4.1.4-10.el5.i386.rpm

3、包全名与包名

  • 包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
  • 包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库

4、RPM安装

rpm -ivh 包全名

选项:

-i(install)

安装

-v(verbose)

显示详细信息

-h(hash)

显示进度

--nodeps

不检查依赖性

5、RPM包升级

rpm -Uvh 包全名

选项:

-U(upgrade)

升级

6、卸载

rpm -e 包名

选项:

-e(erase)

卸载

--nodeps

不检查依赖性

7、查询是否安装

rpm -q 包名

#查询包是否安装

选项:

-q

查询(query)

rpm -qa

#查询所有已经安装的RPM包

选项:

-a

所有(all)

8、查询软件包详细信息

rpm -qi 包名

选项:

-i

查询软件信息(information)

-p

查询未安装包信息(package)

9、查询包中文件安装位置

rpm -ql 包名

选项:

-l

列表(list)

-p

查询未安装包信息(package)

10、查询系统文件属于哪个RPM包

rpm -qf 系统文件名

选项:

-f

查询系统文件属于哪个软件包(file)

11、查询软件包的依赖性

rpm -qR 包名

选项:

-R

查询软件包的依赖性(requires)

-p

查询未安装包信息(package)

12、RPM包校验

rpm -V 已安装的包名

选项:

-V

校验指定RPM包中的文件(verify)

验证内容中的8个信息的具体内容如下:

S

文件大小是否改变

M

文件的类型或文件的权限(rwx)是否被改变

5

文件MD5校验和是否改变(可以看成文件内容是否改变)

D

设备的主从代码是否改变

L

文件路径是否改变

U

文件的属主(所有者)是否改变

G

文件的属组是否改变

T

文件的修改时间是否改变

文件类型

c

配置文件(config file)

d

普通文件(documentation)

g

“鬼”文件(ghost file),很少见,就是该文件不应该被这个rpm包包含

l

授权文件(license file)

r

描述文件(read me)

13、RPM包中文件提取

rpm2cpio 包全名 | cpio -idv .文件绝对路径

rpm2cpio

#将rpm包转换为cpio格式的命令

cpio

#是一种标准工具,它用于创建软件档案文件和从档案文件中提取文件

cpio 选项 < [文件|设备]

选项:

-i:copy-in模式,还原

-d:还原时自动新建目录

-v:显示还原过程

rpm -qf /bin/ls

#查询ls命令属于哪个软件包

mv /bin/ls /tmp/

#造成ls命令误删除假象

rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19-el6.i686.rpm | cpio -idv ./bin/ls

#提取RPM包中ls命令到当前目录的/bin/ls下

cp /root/bin/ls  /bin/  (因为是在/root目录下提取的,所以在/root下)

#把ls命令复制回/bin/目录,修复文件丢失

三、RPM包管理-yum在线管理

1、网络yum源

vi /etc/yum.repos.d/CentOS-Base.repo

修改yum后要清理缓存yum clean all

yum源最简配置  (本地yum源)

[a]

baseurl=file:///mnt/cdrom

gpgcheck=0

 

[base]

容器名称,一定要放在[]中

name

容器说明,可以自己随便写

mirrorlist

镜像站点,这个可以注释掉

baseurl

我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的。如果你觉得慢可以改成你喜欢的yum源地址

enabled

此容器是否生效,如果不写或写成enabled=1都是生效,写成enabled=0就是不生效

gpgcheck

如果是1是指RPM的数据证书生效,如果是0则不生效

gpgkey

数字证书的公钥文件保存位置。不用修改

2、常用yum命令

1)查询

yum list

#查询所有可用软件包列表

yum search 关键字

#搜索服务器上所有和关键字相关的包

2)安装

yum -y install 包名(推荐)  查询推荐使用 rpm –q 包名

选项:

install

安装

-y

自动回答yes

3)升级

yum -y update 包名

选项:

update

升级

-y

自动回答yes

4)卸载

yum -y remove 包名

选项:

remove

卸载

-y

自动回答yes

3、YUM软件组管理命令(例:PHP的一系列软件组)

yum grouplist

#列出所有可用的软件组列表

yum groupinstall 软件组名

#安装指定软件组,组名可以由grouplist查询出来

yum groupremove 软件组名

#卸载指定软件组

4、光盘yum源搭建步骤

1)挂载光盘

mount /dev/sr0 /mnt/cdrom

2)让网络yum源文件失效

cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Base.repo.bak

mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak

3)修改光盘yum源文件

vim CentOS-Media.repo

[c6-media]

name=CentOS-$releasever - Media

baseurl=file:///mnt/cdrom

#地址为你自己的光盘挂载地址

#file:///media/cdrom/

#file:///media/cdrecorder/

#注释这两个不存在的地址

gpgcheck=1

enabled=1

#把enabled=0改为enabled=1,让这个yum源配置文件生效

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 

安装C语言编译器

yum –y install gcc

四、源码包管理

注:在实际中使用源码包安装的程序其源代码必须保存(在原程序进行修改时必须使用源代码)

1、区别

  • 安装之前的区别:概念上的区别
  • 安装之后的区别:安装位置不同

2、RPM包安装位置

  • 是安装在默认位置中

RPM包默认安装路径

/etc/

配置文件安装目录

/usr/bin/

可执行的命令安装目录

/usr/lib/

程序所使用的函数库保存位置

/usr/share/doc/

基本的软件使用手册保存位置

/usr/share/man/

帮助文件保存位置

3、源码包安装位置

  • 安装在指定位置当中,一般是/usr/local/软件名/

4、安装位置不同带来的影响

  • RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方式是:
    • /etc/rc.d/init.d/httpd start
    • service httpd start
  • 而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,如:
    • /usr/local/apache2/bin/apachectl start

5、安装准备

  • 安装C语言编译器 yum –y install gcc
  • 下载源码包http://mirror.bit.edu.cn/apache/httpd/

6、安装注意事项

  • 源代码保存位置:/usr/local/src/
  • 软件安装位置:/usr/local/
  • 如何确定安装过程报错:
    • 安装过程停止
    • 出现error、warning或no的提示

7、源码包安装过程

  • 下载源码包
  • 解压缩下载的源码包
  • 进入解压缩目录
  •  

./configure

软件配置与检查

  • ./configure --prefix=/usr/local/xxx(指定编译目录)
  • 例:./congfigure --prefix=/usr/local/apache
  • echo $?(检查上一条命令使用的正确性,包括使用命令处理结果的正确性)
  • 定义需要的功能选项。
  • 检测系统环境是否符合安装要求。
  • 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。
  •  

make

编译

  • make clean //清除之前编译的可执行文件及配置文件(编译错时可使用)
  •  make distclean    //清除所有生成的文件。

 

make install

编译安装

 

启动(得先关闭系统的httpd  service httpd stop)

  • /usr/local/apache2/bin/apachectl start

8、源码包的卸载

  • 不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。

五、脚本安装包与软件包选择

1、脚本安装包

  • 脚本安装包并不是独立的软件包类型,常见安装的是源码包。
  • 是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。
  • 非常类似于Windows下软件的安装方式。

2、Webmin的作用

  • Webmin是一个基于Web的Linux系统管理界面。您就可以通过图形化的方式设置用户账号、Apache、DNS、文件共享等服务

3、Webmin安装过程

posted @   叮伱格斐呃  阅读(142)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
Live2D
欢迎阅读『Linux软件管理』
点击右上角即可分享
微信分享提示