一、本章导言:
linux应用程序基础
查询RPM软件包信息
安装、升级、卸载、RMP软件包
源代码编译安装
二、linux应用程序基础:
1、应用程序与系统命令的关系
a、文件位置
系统命令:一般在/bin和/sbin目录中,成为shell内部指令
应用程序:通常在/usr/bin和/usr/sbin中
b、主要用途
系统命令:完成对系统的基本管理工作,例如IP配置工具
应用程序:完成相对独立的其他辅助任务。例如网页浏览器
c、适用环境
系统命令:一般只在字符操作界面中运行
应用程序:根据实际需要,有些程序可在图形界面中运行
d、运行格式
系统命令:一般包括命令字、命令选项和命令参数
应用程序:通常没有固定的执行格式
2、典型应用程序的目录结构
文件类型 |
保存目录 |
普通执行程序文件 |
/usr/bin |
应用程序配置文件和管理程序 |
/usr/sbin |
应用程序配置文件 |
/etc |
日志文件 |
/var/log |
应用程序文档文件 |
/usr/share/doc |
应用程序手册页文件 |
/usr/share/man |
3、常见的软件包封装类型:
文件类型 |
保存目录 |
rpm软件包 |
扩展名为“.rpm” |
deb软件包 |
扩展名为“.deb” |
源代码软件包 |
一般为“.tar.gz"、".tar.bz2"等格式的压缩包包含程序的原始代码 |
绿色免安装的软件包 |
在压缩包内提供已编译好的执行程序文件,解开压缩包后的文件可直接使用 |
三、rpm包管理工具
1、RPM Package Manager
由Red Hat公司提出,被众多linux发行版所采用
建立统一的数据库文件
详细记录软件包安装、卸载等变化信息
自动分析软件包依赖关系
2、RPM软件包:
软件素材参考:http://www.rpm.org
一般命名格式: bash-4.1.2.15.el6_4.x86_64.rpm
四、rpm软件包信息
1、查询已安装的RPM软件信息
rpm -q【子选项}】【软件包】
常用选项
-qa:检查所有已安装的rpm软件包
-qi:检查详细信息,版本信息
-ql:检查rpm软件包包含的内容
-qf:检查某一个rpm软件包里的文件
-qc:检查已安装rpm软件包里的配置文件
-qd:手册文档
2、查询未安装的rpm软件包文件中信息
rpm -qp【子选项】 rpm包文件
常用选项:
-qpi:检查未安装软件包的详细信息
-qpl:检查未安装软件包中包含了哪些内容
-qpc:查询未安装软件包中的配置文件
-qpd:检查未安装软件包的文档手册
ps:
yun仓库yum list:yum源,软件包的集中存放地点,输入yum list即可查看到所有的软件包(下图为所展示的软件包的一部分)
源的软件包的是实时更新的,当我们使用yum进行安装时直接安装的是最新版本的,因为官方会自动维护的,具体这个官方的路径在什么位置,我们来看一下:
输入cd /etc/ 进入etc目录下,ls我们查列表信息,可以看到下图中的三个yum软件包,其中一个就是软件包的源的配置地点
输入cd yum.repos.d/进入文件中,再输入ls查看详细信息,此时我们会看到以CentOS开头的,以repo结尾的配置文件在其中(以下全是),其中CentOS-Base.repo这个文件为基本配置文件
输入vim CentOS-Base.repo 查看文件中的详细信息,看到镜像列表,为网站地址链接,表示当处于联网状态时才能安装软件包,断网状态软件包不能使用安装
当在在线状态安装软件包(httpd):yum install httpd -y
因为这是一个网站服务,所以我们接下来需要开启此项服务,
输入:systemctl start httpd.service
开启网站服务
输入:systemtcl stop firewalld.service
关闭防火墙
输入:setenforce 0
关闭增强安全功能
输入:ifconfig
获取到IP地址为192.168.64.138
用宿主机输入此地址是可以访问到建立好的Apache网站服务的。
五、安装、升级、卸载rpm软件包
1、安装或升级rpm软件
rpm 【选项】 rpm包文件...
常用选项
-i:安装
-U:更新
-F:查看某一个文件目录属于哪一个rpm安装包
2、卸载指定的rpm软件
rpm -e 软件名
-e:已卸载的rpm软件包
3、辅助选项
--force:强制执行
--nodeps:解决依赖问题
-h:友好显示
-v:显示过程
六、解决软件包依赖关系方法:
1.安装有依赖关系的多个软件时
被依赖的软件包需要先安装
可同时指定多个.rpm包文件进行安装
2.卸载有依赖关系的多个软件时
依赖其他程序的软件包需要先卸载
可同时指定多个软件名进行卸载
3.忽略依赖关系
结合“--nodeps”选项,但可能导致软件异常
七、维护RPM数据库
1、重建RPM数据库
2、导入验证公钥
八、源代码编译概述
1、使用源代码安装软件时的优点
获取最新的软件版本,及时修复bug
根据用户需要,灵活定制软件功能
2、应用场合举例
安装较新版本的应用程序时
当前安装的程序无法满足需要时
需要为应用程序添加新的功能时
九、编译安装源代码包
1、Tarball封包
.targz和.tar.bz2格式居多
软件素材参考:http://sourceforge.net
2、完整性校验
3、确认源代码编译环境:
需安装支持C/C++程序语言的编译器,如:
gcc-4.4.7-4.el6、 gcc-c++-4.4.7-4.el6 等等
十、编译安装过程
十一、tar解包
解包
习惯上将软件包释放到/usr/src/目录
解包后的源代码文件位置:
/usr/src/软件名-版本号/
示例:
补充:如何在断网情况下安装RPM软件包
1、将你的虚拟机设置为仅主机模式断网,在仅主机模式下只能与宿主机与宿主机中的虚拟机通讯
2、配静态IP,配好后远程连接也会断掉,我们在虚拟机中打开终端
a、输入:vim /etc/sysconfig/network.scripts/ifcfg.ens33进入网卡配置,此时BOOTPROTO为dhcp自动获取模式
b、输入/dhcp,直接查询到,按dw整个删除,输入statci
c、G到末行,$符号到末尾,确认ONBOOT状态为yes,按o进入下一行插入
d、.输入IPADDR=192.168.100.100设置好静态IP,再按o进入下一行插入
e、输入NETMASK=255.255.255.0设置MAC地址,再按o进入下一行插入
f、输入GATEWAY=192.168.100.1设置网关,按Esc退回到命令模式,按“:”号到末行模式
i、输入wq保存退出
g、输入service network restart重启服务,改完配置文件之后必须要重启服务,否则不会生效
k、输入ifconfig查看此时的网卡IP为192.168.100.100
l、用火狐浏览器尝试访问互联网,此时无法访问互联网
3、输入yum clean all清除之前联网状态下的yum缓存
4、此时进行离线安装,就要用到镜像文件里的软件包,并为镜像里的软件包自行创建一个yum仓库。首先需要挂载镜像。
a、右键点击虚拟光驱选择设置,在使用ISO镜像文件中会有我们之前安装系统时加载的镜像文件,我们使用这个镜像文件就可以,选择状态为已连接,点击确定
b、输入:df -h查看光盘是否被成功挂载,此时我们看下我们的光驱在什么位置
c、输入:cd /dev/,进入dev中,再输入ls查看详细信息,可以看到其中有一个目录为cdrom
d、将光驱挂载到自己的一个目录中(此处设置目录为mnt),在以后再需要用到时,直接到开这个目录就可以了
e、输入:mount /dev/cdrom /mut敲回车,此时光盘挂载到mnt目录下成功
f、输入:df -h查看挂载是否成功
g、输入:ls /mnt/进入mnt目录中查看详细信息,可以看到其中有镜像文件当中的东西,其中我们安装所需的安装包都在Package这个目录里面,我们进入此目录后会发现里面都是rpm包
5、卸载vim,再安装vim验证安装包的使用
输入:rpm -evh vim.enhanced-7.4.160-2.el7.x86_64(此处可查看路径后复制),敲回车进行卸载,此时在使用vim功能是无法使用的,显示没有文件或目录,过程和结果如下图所示:
此时vim功能失效,但是vi功能还是可以使用的(vi中不能用颜色区分文件格式)
这个时候我们输入:rpm -evh vim.enhanced-7.4.160-2.el7.x86_64(在Packages路径下可以用Tab键自己补全)重新安装vim,就可以正常使用了。