Linux软件安装
Updated:
Linux软件包分类
- 源码包
- 优点 :
- 开源;有能力可以自己修改源代码
- 可以自由选择所需的功能
- 软件为编译安装;更适合自己的系统,更稳定高效
- 卸载方便!!!
- 缺点 :
- 安装步骤较多;在安装较大的软件集合时,容易出现拼写错误
- 编译过程时间较长,安装比二进制安装时间长
- 安装过程中要是报错了..就对我们这样的智障十分不友好
- 优点 :
- 二进制包(RPM包)
- 优点 :
- 包管理系统简单,只需要几个命名就可以实现包的安装、升级、查询、卸载
- 安装速度比源码包安装快得多
- 缺点 :
- 经过编译,不再能够看到源码
- 功能选择不如源码包灵活
- 依赖性强
- 优点 :
- 脚本安装包
就是把复杂的安装过程写成了一个脚本,初学者可以通过执行脚本实现一键安装;但实际安装的还是源码包或二进制包- 优点 :
- 安装简单、快捷
- 缺点 :
- 完全丧失了自定义性
- 优点 :
RPM命令管理
- RPM包在哪里?
- 在系统光盘中的Packages包下啦!
- 要怎么进入看到呢?
- 首先把光盘挂载过来 :
- 然后进入这个挂载点,再进入Packages包 :
- ls一下就会看见所有的RPM包啦 :
- 首先把光盘挂载过来 :
- RPM包命名规则
- 以 httpd-2.2.15-15.el6.centos.1.i686.rpm 为例
- httpd 软件包名
- 2.2.15 软件版本
- 15 软件发布的次数
- el6.centos 适合的Linux平台
- i686 适合的硬件平台
- rpm rpm包的扩展名
- 以 httpd-2.2.15-15.el6.centos.1.i686.rpm 为例
- RPM包的依赖性
- 树形依赖 :a -> b -> c
- 解决方案 :先装 c 再装 b 再装 a
- 环形依赖 :a -> b -> c -> a
- 解决方案 :把这几个包同时装上
- 模块依赖 :依赖一个文件(一般以 so.数字 结尾)
- 解决方案 :把这个文件所在的包装上先
- 注 :可在 www.rpmfind.net 中进行查询
- 包全名与包名
- 包全名 :
- 在操作的包是没有安装的软件包时使用
- 且需要注意路径(使用绝对路径或进入Packages)
- 包名 :
- 在操作的是已经安装的软件包时使用
- 注 :本质是搜索 /var/lib/rpm/ 中的数据库
- 所以一般不需要特别注意路径
- 包全名 :
- RPM包的安装
- 基本格式 :rpm -ivh 包全名
- 选项 :
- -i install 安装
- -v verbose 显示详细信息
- -h hash 显示进度
- –nodeps 不检测依赖性
- 注意 :但–nodeps不推荐使用
- 让我们走个流程看一下 :
- 首先来装一个Apache –> 先让它自动补一下
- 一般会先装第一个,也就是主安装包 :
- 但是没装上..为什么呢?差依赖 –>
那就先装它的依赖包试试 : - 但是还是没装上..还差依赖 –>
注意 apr-util = 其实指的就是它的版本号 - 再装 –> 还是没装上 –>
这次差的是依赖文件 –> 那就装它所在的安装包 - 假装查过之后..好!终于装上了!
- 然鹅这只是装上了最底层的一个依赖包而已..
让我们再一层一层装回去 : - 最后是Apache的主安装包!
- 所以说它为什么叕报错了呢..因为刚刚只装好了一条线上的依赖鸭..还有另N条线 嘤!让我们再试一次 :
- 然后就成功啦!成功装上了Apache..的主安装包 –>
也就是说,还有不主的安装包要装..那就装叭 嘤 : - 好了,最后还剩一个httpd-devel,听说它有八个依赖包..就..就不装了嘤 QAQ 等着后面讲到yum再装叭 嗷呜
- RPM包的升级
- 基本格式 :rpm -Uvh 包全名
- 选项 :
- -U update 升级
- 注意 :
- 后面跟的是包全名不是包名
- 其实也能当安装命令用
- 但没啥事还是分开用了啦
- RPM包的卸载
- 基本格式 :rpm -e 包名
- 选项 :
- -e erase 卸载
- –nodeps 不检查依赖性
- 注意 :
- 实际是去 /var/lib/rpm/ 中寻找对应安装包
- 所以用包名就可以了,并且不用太在意路径
- 要按与安装相反的依赖顺序卸载 嗷呜
- 所以 –nnodeps 依旧不推荐使用
- RPM包的查询
- 查询是否安装 :
- 基本格式 :rpm -q 包名
- 选项 :-q query 查询
- 如果是已经装过的 :
- 如果是没有装过的 :
- 查询所有已经安装的RPM包 :
- 基本格式 :rpm -qa
- 选项 :-a all 所有的
- 比如这样 :
- 通过管道符查询相关包 :
- 比如 rpm -qa | grep httpd
- 就会为你查询到所有包含httpd的RPM包 :
- 查询已安装的软件包的详细信息 :
- 基本格式 :rpm -qi 包名
- 选项 :-i information 查询软件信息
- 比如这样 :
- 查询未安装的软件包的详细信息 :
- 基本格式 :rpm -qip 包全名
- 选项 :-p package 未安装的软件包
- 比如这样(注意得是在目录下才行哦):
- 查询软件包中的文件安装位置 :
- 基本格式 :rpm -ql(p) 包名(包全名)
- 选项 :-l list 列表
- 比如这样 :
- 附一张传说中RPM包一般默认安装位置的图 :
- 查询系统文件属于哪个RPM包 :
- 基本格式 :rpm -qf 系统文件名
- 选项 :-f file 查询文件属于哪个RPM包
- 比如这样 :
- 当然如果这个文件不是通过RPM包装上的..
- 查询软件包的依赖性 :
- rpm -qR(p) 包名(包全名)
- 选项 :-R requires 依赖性
- 但它其实并没有什么实际用处,因为..
- 查询是否安装 :
- RPM包的校验
- 基本格式 :rpm -V 已安装的包名
- 选项 :
- -V verify 校验
- 比如这样 :–> 但是会发现并没有什么动静
- 但如果我们在httpd某个文件中加一行注释..
- 就会发现有变化了!
- 那么验证内容中的八个信息具体指什么呢?
- S 文件大小是否改变
- M 文件类型或权限是否改变
- 5 文件内容是否改变
- D 设备的主从代码是否改变
- L 文件路径是否改变
- U 文件所有者是否改变
- G 文件的属组是否改变
- T 文件的修改时间是否改变
- 那后面那个c又是指什么呢?
- c config file 配置文件
- d documentation 普通文档
- g ghost file 幽灵文件(就是指这个文件不应该被这个RPM包包含,也就是嗦!你该检查一下系统有没有粗什么事啦)
- L license file 授权文件
- r readme 描述文件
- RPM包中文件提取
- 基本格式 :
- rpm2cpio 包全名 | cpio -idv .文件绝对路径
- 选项 :
- -rpm2cpio 将rpm包转换为cpio格式的命令
- -cpio 这是一个标准工具,用来创建软件档案文件和从档案文件中提取文件的
- 用途 :
- 用于不小心删了什么系统文件然后从它的rpm包中把这个文件再提取出来以防止系统崩溃什么的
- 其实也可以直接把这个RPM包再装一遍
- 其实我并看不太懂 但是还是要记一下 不能懒不能懒
- 基本格式 :
yum在线安装
- yum源文件
- 让我们来看看系统默认的yum源文件放在哪 :
- 默认是第一个生效,让我们vi一下进去看看 :
- 那所以这里面写了点啥?哎算了还是截个图叭
- 让我们来看看系统默认的yum源文件放在哪 :
- 光盘搭建本地yum源
- 挂载光盘 :
- mkdir /mnt/cdrom
- mount /dev/sr0 /mnt/cdrom/
- 使网络yum源生效(即使第一个失效,使第三个生效):
- 首先进入yum源目录 :
- 然后修改yum源文件的后缀名,使其失效 :
- 然后进入第三个文件,修改一下使其生效 :
- 最后再验证一下 –>
输入 yum list,如果看见一堆c6-media,就说明成功啦 :
- 首先进入yum源目录 :
- 常用的yum命令
- 查询所有可用软件包列表 :
- 基本格式 :yum list
- 比如说上面那样 :
- 搜索服务器上素有和关键字相关的包 :
- 基本格式 :yum search 关键字
- 比如说这样 :
- 安装(没有包全名也没有路径要求啦!快乐!) :
- 基本格式 :yum -y install 包名
- 选项 :-y 自动回答yes
- 比如说把上次没装完的Apache-devel装上 :
- 回车然后只需要等一会..啊简直不要太快乐 :
- 升级 :
- 基本格式 :yum -y update 包名
- 当然你必须得有个更高版本的包
- and据说没啥事不要瞎升级
- 所以这里就不举栗子啦 嗷呜~
- 卸载 :
- 基本格式 :yum -y remove 包名
- 同样,没啥事不要瞎卸载,尤其不要用yum卸
- 因为卸载的时候也是有依赖性的啦
- rpm还会确定一下,yum问都不问直接就帮你卸了
- yum软件组管理命令
- 列出所有可用的软件组列表 :
- 基本格式 :yum grouplist
- 比如这样 :
- 但是有个问题 :查的时候查出来中文很开心,但你装的时候不能输中文装鸭!怎么办呢!
- 这个时候就可以把系统语系改成英文啦 :
- 然后等安装完了再改回来就好,比如这样 :
- 安装软件组 :
- 基本格式 :yum groupinstall 软件组名
- 卸载指定软件组 :
- 基本格式 :yum groupremove 软件组名
- 挂载光盘 :
源码包安装
- 源码包和RPM包的区别
- 安装之前 :概念上的区别
- 详见..前面的 嘻嘻
- 安装之后 :安装位置不同
- RPM包 :一般让它保持默认安装
- 源码包 :需要手动指定安装位置
- 注意注意 :
- 源码包是没有卸载命令的
- 所以一定要手动指定位置
- 一般放在 /usr/local/软件名/ 下
- 不然它会像RPM一样装的到处都是
- 你要删还得一个包一个包找着删
- 安装之前 :概念上的区别
- 源码包的
(云)安装- 因为没WiFi了所以不装了 心疼流量嘤嘤嘤
- 下面是源码包的云安装时间 :
- 安装注意事项 :
- 源代码保存位置 :/usr/local/src/
- 软件安装位置 :/usr/local/
- 如何确定安装过程报错 :
- 安装过程停止
- 并出现error/warning/no等提示
- 源码包的安装过程 :
- 下载源码包
- 解压缩下载的源码包
- 进入解压缩目录
- ./configure 软件配置与检查 :
- 定义需要的功能选项
- 检测系统环境是否符合安装要求
- 将上述信息写入Makefile文件
- 注意一定要加上下面这个功能 :
- ./configure –prefix=路径
- 用来指定安装位置
- 然后 :make 编译
- 万一报错怎么办呢?像这样 :
- make clean 清除刚刚编译的文件
- 最后 :make install 安装
脚本安装包
实际上还是源码包和RPM包
- 接下来依然是
(云)安装时间- 算了这次连云都不想云了 嘤
藏在最后
- 好我们的软件安装管理到此结束
(呸) - 虽然好像仿佛还是啥也不会???
- 嗷呜~说好不偷懒结果又摸了
- 算了算了以后要用到就滚回来再过一遍叭