Linux下的软件管理
一.软件包管理简介
1源码包(脚本安装)
①.特点: a.开源 ,可以修改
b.自由选择所需功能
c.软件是编译安装,更加适合自己的系统,更加稳定和有效
d.卸载方便
②.缺点: a.安装步骤较多,安装较大的集成(LAMP环境搭建),容易拼写错误
b.编译时间长,比二进制(windows)安装时间长
v.一旦报错,解决方案比较麻烦。
2.二进制包(rpm包、系统默认包、编译之后的)
①优点:a.包管理系统简单,只需要几个命令就可以安装、升级了
b.比源码包快很多
②缺点: a.不可以看到源代码
b.没有源码灵活
c.依赖性
编译 public class main{} --》机器语言01010102
反编译-->基本不可逆,有混淆。
二、rpm命令管理(/var/lib/rpm/ 下面的db文件存放了安装的软件包名)
1.rpm包的命名规则
① 来源:系统光盘中 、mnt/cdrom/Packages
② httpd-2..2.15-15.el6.centos.1.i686.rpm
httpd软件包名
2.2.15软件版本
15版本发布的次数
.el6.centos适合的linu平台
i6868适合的硬件平台
rpmrpm包扩展名
③ RPM包依赖性
树形依赖:a->b->c
环形依赖:a->b->c->a
模型依赖:模块依赖(库依赖,函数依赖 .so文件,依赖的是一个文件,而不是软件),
需要一个库依赖时,安装其他的软件包含的这个库就可以,去后面查询网站:www.rpmfind.net (很恶心的)
2.安装命令
①.包全名和包名 有些命令(rpm)是包全名--有的命令(卸载、查询)是包名
②.Rpm安装:
③.升级与卸载
a. rpm -Uvh 包全名
-U 升级 (如果没有安装一个软件包,用升级命令既是安装命令)
b.rpm -e 包名
-e 卸载(卸载也有依赖性) 没有安装位置,由写下载包的人决定。不会添加垃圾文件,没有注册表啥的
--nodeps不检查依赖性
④.rpm包查询
a. rpm -q包名 查询包是否安装
b. rpm -qa 查询所有已经安装的RPM包 grep后面是正则表达式
c. rpm -qi 包名 软件的信息是开发者打包成rpm包时,添加的信息
-i 查询软件信息
-q查询未安装包信息
d. rpm -ql 包名
-l 列表
-q查询未安装包的位置
e. rpm -qf 系统文件名
-f 查询这个文件属于哪个包 , 这个文件必须是rpm包装的,否则则不可以查询
f. rpm -qR 包名
-R 查询软件包的依赖性
-p查询未安装包的信息
⑤.RPM包校验
a. rpm -V 校验验证的信息
b. rpm2cpio 包全名 | cpio -idv .文件的绝对路径 |管道符
-rpm2cpio 将RPM包转换成CPIO格式的命令
-cpio 是一个标准工具,用于创建软件档案文件和从档案文件中提取文件。
cpio 选项 <[文件|设备]
-i :copy-in模式,还原
-d : 还原时自动新建目录
-v : 显示还原过程
三、yum在线管理
将所有的软件包放在官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题
redhat需要付费
1.yum源文件
在线 /etc/yu,.repos.d/ 文章下面的图四
mirrorlist镜像 baseUrl
2.光盘yum源搭建(不联网怎么下载?)
在光盘搭建本地光盘yum源步骤
a. 挂载光盘 :mkdir /mnt/cdrom 建立挂载点 mount /dev/cdrom挂载光盘 /mnt/cdrom
b.使网络yum源失效 : cd /etc/yum.repos.d 进入源目录 mv CentOS-Base.repo CentOS-base.repo.bak 修改文件名字,使其失效
c.使光盘yum生效 见文章后面图五
d.yum list 查看本地源有哪些
3.yum命令,不能查询本地的安装包,只能查询服务器上面的,与rpm包醉的的区别,就是依赖
a.yum list 查询所有可用软件包列表
b.yum search 关键字 和关键字相关的包
c.yum -y install 包名 (yum中没有包全名,包全名只在rpm中有效)
-y 自动回答yes yum -y install gcc
d. yum -y update httpd 升级 不加httpd表示升级所有的,包括内核
e. yum -y remove 包名 服务器使用最小化安装,用什么软件安装说明,尽量不要卸载。卸载也有依赖性。
组命令
f. yum grouplist 列出所有可用的软件组列表
g.yum groupinstall 软件组名 安装指定软件组,组名可以由grouplist查询出来。 软件组名必须是英文。
h.yum groupremove 软件组名
i. LANG=zh_CN 修改当前系统的语言
四、源码包管理
1.源码包和RPm包的区别
安装之前是概念的不同
安装之后的区别:安装位置不同 会导致启动方法不一样 ,安装位置见图六
①rpm包可以指定安装位置 rpm --help | grep prefix RPM包建议,
②RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法:
a./etc/rc.d/init/httpd start (linux的标准启动方法,如果指定位置,则按照你的位置,)
b.service htpd start (查找默认的位置/etc/rc.d/init/httpd)
③源码包安装位置一般是 /usr/local/软件名/
没有卸载命令 把安装目录直接删掉
源码包启动: /usr/local/apache2/bin/apachectl start
serice不能启动源码包的,或者把源码包移动到默认位置
2.源码包安装过程
①安装C语言编译 gcc
②下载源码包(rpm包是linux的光盘,源码包从官网下载)
③注意: 源代码包保存位置:/usr/local/src/ 软件安装位置:/usr/local/
④解压缩下载的源码包、进入解压缩目录
⑤ ./config 每个源码包基本都有
a.定义功能选项,
b.检测系统环境是否符合安装要求。
c.把定义好的功能选项和检测系统环境的信息都写入makefile文件中,用于后续的使用
⑥ make 编译
a.make clean 如果报错了,清除编译缓存文件
make install编译安装
⑦进入你安装的位置,然后启动 /usr/local/apache2/bin/apachectl start
如果你用rpm安装了 acpache,要 service httpd stop先停止,再启动
源码包安装可以看他的文档。
⑧源码包没有卸载命令,直接删除安装目录即可。不会遗留垃圾文件的
五、脚本安装 https://lnmp.org/
关闭SELinux(美国安全局开发)和防火墙
图一 RPM包的默认位置(常规位置,具体位置由RPM包的作者决定的)
图二 rpm -V 验证文件是否经过更改的详细提示信息(一)
图三 rpm -V 验证文件是否经过更改的详细提示信息(二)
图四 yum源文件
图五:yum源生效更改
图六RPM包的安装位置
天助自助者