linux系统主要有三种方法
1,编译安装
优点:灵活性较高,可以装较新的版本
缺点:难度较大
2,rpm安装
红帽公司做的类似360安装软件, rpm 跟软件名 (后缀名必须.rpm) 就可以安装。
一般用来查信息, 看程序是否安装。
缺点:只能检测各个程序的依赖关系,不能解决
3,yum
yum是rpm升级版本,可以解决各个程序的依赖关系
注意:2,3用的都是红帽打包好的软件包,能不能用2,3 就要看红帽有没有包
一,linux 程序基础知识
(一)应用程序与系统命令的区别
角色 | 系统命令 | 应用程序 |
文件位置 | 一般在/bin和/sbin目录中,或为shell内部指令 | 通常在user/bin和user/sbin目录中 |
主要用途 | 完成对系统的基本管理工作,例如IP配置工具 | 完成相对独立的其他辅助任务,例如网页浏览器 |
适用环境 | 一般只在字符操作界面中运行 | 根据实际需要,有些程序可在图形界面中运行 |
运行格式 | 一般包括命令字、命令选项和命令参数 | 通常没有固定的执行格式 |
(二)典型应用程序所在目录
文件类型 | 保存目录 |
普通执行程序文件 | /usr/bin |
服务器执行程序文件和管理程序文件 | /usr/sbin |
应用程序配置文件 | /etc |
日志文件 | /var/log |
应用程序参考文档文件 | /usr/share/doc |
应用程序手册页文件 | /usr/local/share/man |
(三)常见的软件区包封装类型
文件类型 | 保存目录 | 解释 |
RPM软件包 | 扩展名为“.rpm” | RPM Package Manager的缩写 是红帽公司自主研发的一款工具,实用性强。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在相互依赖的情况。 |
DEB软件包 | 扩展名为“.deb" | 在Linux系统中类似于windows中的软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。此外,deb广泛应用于越狱后iOS软件及MeeGo(含Maemo软件)中。Debian包是将包的文件信息以及包内容,经过gzip和tar打包而成。 |
源代码软件包 | 一般为“.targz",".tar.bz2"等格式的压缩包包含程序的原始代码 | 是需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。 |
绿色免安装的软件包 | 软件包的扩展名不一,以TarBall格式的居多在压缩包内提供已编译好的执行程序文件解开压缩包后的文件即可直接使用 | 顾名思义自行理解比如Windows的截图软件 |
二,RPM包管理工具
(一)RPM 是什么
Red-Hat Package Manager
由Red Hat公司提出,被众多Linux发行版所采用
建立统一的数据库文件(一张对应表将信息写入)
详细记录软件包安装、卸载等变化信息
自动分析软件包依赖关系
(二)命名格式
bash-4.1.2-15.el6_4.x86_64.rpm
bash shell环境 版本信息 4.1.2 15发布次数 x86_64硬件
(三)相关文件
- 包文件组成 (每个包独有)
- 包内的文件
- 元数据,如:包的名称,版本,依赖性,描述等
- 可能会有包安装或卸载时运行的脚本
- 数据库(公共):/var/lib/rpm (安装好后会将一些公共的数据放入数据库中)
- 程序包名称及版本
- 依赖关系
- 功能说明
- 包安装后生成的各文件路径及校验码信息
(四)安装条件
软件包之间可能存在依赖关系,甚至循环依赖,即:A包依赖B包,B包依赖C包,C包依赖A包
安装软件包时,会因为缺少依赖的包,而导致安装包失败。rpm只能检测各个程序的依赖关系,不能解决.
(五)rpm相关命令
1,查询
选项 | 功能效果 |
rpm -qa(all) | 显示当前系统中以 RPM 方式安装的所有软件列表 |
rpm -q 软件名 | 查询指定软件是否已安装 |
rpm -qi 软件名 | 查看指定软件包的名称、版本、许可协议、用途描述等详细信息 |
rpm -ql(list) 软件名 | 显示指定的软件包在当前系统中安装的所有目录、文件列表 |
rpm -qc (configfiles ) 软件名 | 列出已安装的指定软件的配置文件(以.cof结尾) |
rpm -qd(docfiles) 软件名 | 列出已安装的指定软件的软件包文档所在位置 |
rpm -qR (requires) 软件名 | 列出已安装的指定软件的依赖的软件包及文件 |
rpm -qf(file) 软件名 | 查看指定的文件或目录是由哪个软件包所安装的 |
rpm-qpd | 查询未安装指定软件包的文档位置 |
rpm -qpi | 查询未安装指定软件包的完整名称详细信息 |
rpm -qpl | 查询未安装指定软件包的文件列表 |
rpm -qpc | 查询未安装指定软件包的配置文件位置 |
2,安装
使用rpm安装,当前目录下一定要有安装包
rpm -ivh
i 指安装 v 指显示过程 h 指进度条
3,卸载
rpm -e
(六)维护RPM 数据库
1.重建RPM数据库
当RPM 数据库发生损坏,可通过 重建RPM 数据库 修复
rpm --rebuild 或者 rpm --initdb
2.导入验证公钥
在没有导入用于数字签名验证的公钥之前,安装光盘中的一部分RPM 包时会报错。需要向RPM数据库中导入位于光盘根目录下的公钥文件。
三,挂载
1,挂载格式:
mount 设备 加文件夹路径
挂载光盘:mount /dev/cdrom /mnt/
2,挂载规则
- 一个挂载点同一时间只能挂载一个设备
- 一个挂载点同一时间挂载了多个设备,只能看到最后一个挂载设备的数据,其它设备上的数据将被隐藏
- 一个设备可以同时挂载到多个挂载点
- 通常挂载点一般是已存在空的目录,挂载后挂载点的文件可能消失
- 只要是外来设备想要在linux系统中使用都要挂载
- 挂载是临时的,如果永久需要,要写到文件中去 /etc/fstab
3,挂载相关命令
①挂载光盘
②解挂载 unmount
③ 看挂载情况 df
四,yum
(一)yum介绍
为了解决依赖关系,发明yum命令。yum 不但可以检测依赖关系,还可以解决依赖关系。
yum是 c/s架构 分为客户端 服务端
客户端:配置文件指向服务端
服务端:提供软件包
(二)yum仓库
本地仓库:自己是客户端也是服务端 (救急的,没网的情况,)
网络仓库:客户端和服务端分开
(三)yum安装过程
1,客户端 根据配置文件找到服务端
2,客户端将元信息下载到本地 (元信息:安装包的位置,以及安装的依赖关系)
3,根据元信息去下载对应的安装包到本地后,然后安装
4,安装完成后,删除安装包
网络yum一定要有网,无网用rpm 或者 本地yum仓库。
(五)网络yum 下载程序
系统一安装好, 无需操作,自带网络yum源
yum install 软件名 -y
install 指安装 -y 指同意
(六) 本地yum
1,服务端和客户端
服务端我们不需要修改,服务端配置软件在 vim /ect/yum.cof
客户端的配置文件需要改,在 cd /etc/yum.repos.d/ 文件夹里面
必须要放在/etc/yum.repos.d/文件夹下,配置文件必须要以 .repo结尾
2,实验本地yum 安装并运行tree程序
gpgcheck 检测软件的安全性
=0 不需要检测
=1 需要检测
3,可能会出现的问题
解决办法:
kill 114533 不成功的话
rm -rf /var/run/yum.pid
五,编译
(一)编译步骤
1 ./configure
①,选择装在哪里 ②,检测编译环境 ③,选择安装模块(选择安装基础版也就是默认版或者一些额外的功能)
./configure --help 看到 可以安装的模块
2,make 将所有的源代码翻译成二进制,会形成一个绿色的可执行文件
3,make install 将执行文件及相关的一些依赖文件拷贝到之前指定的目录中
(二)实验步骤
注意:
1,每个软件的安装编译环境不一样
2,去官网复制网络地址时,要看到packages 和 repodata 再复制
repodata 这个名字不能改 这个文件夹是后面生成的
packages 名字可以改
(三)可能会出现的问题以及排错
装好了会生成这个文件,如果报错先把这个文件删了
遇到问题:少编译工具,先把这个文件删了,百度缺什么
然后用 yum install 去装