Linux 安装和管理程序
导图
1.linux应用程序基础
linux源码包:
源码包实际上就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的
linux二进制包:
二进制包,也就是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快(同 Windows下安装软件速度相当),且安装过程报错几率大大减小。
源码包和rpm二进制包
使用源码包安装软件得好处:
-
开源。如果你有足够的能力,则可以修改源代码。
-
可以自由选择所需的功能。
-
因为软件是编译安装的,所以更加适合自己的系统,更加稳定,效率也更高。
-
卸载方便。
使用源码包安装软件的不足:
-
安装过程步骤较多,尤其是在安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写错误。
-
编译时间较长,所以安装时间比二进制安装要长。
-
因为软件是编译安装的,所以在安装过程中一旦报错,新手很难解决
rpm二进制包:
-
考虑到用户安装软件的难度
-
2.应用程序和系统命令的关系
比较不同 | 系统命令 | 应用程序 |
位置 | linux内一切皆文件,内部和外部 | 应用程序位置 |
用途 | 命令主要处理系统的基本操作(复制,配置) | 可以完成独立的任务浏览器访问网页 |
使用环境 | 字符界面 | 字符和桌面 |
格式 | 命令 [选项] 参数 | 无固定程序 |
3.典型应用程序的目录结构
保存目录 | |
---|---|
普通执行程序文件 | /usr/bin |
服务器执行程序文件和管理程序文件 | /usr/sbin |
应用程序配置文件 | /etc |
日志文件 | /var/log |
应用程序参考文档文件 |
4.常见的软件包封装类型
保存目录 | |
---|---|
RPM软件包 | 扩展名为“.rpm” |
DEB软件包 | 扩展名为“.deb” |
源代码软件包 | 一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码 |
绿色免安装的软件包 |
-
-
DEB包:在Linux系统中类似于windows中的软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。此外,deb广泛应用于越狱后iOS软件及MeeGo(含Maemo软件)中。Debian包是将包的文件信息以及包内容,经过gzip和tar打包而成。
-
源代码软件包 :是需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。
-
5.RPM包管理工具
由Red Hat公司提出,被众多Linux发行版所采用
建立统一的数据库文件(一张对应表将信息写入)
详细记录软件包安装、卸载等变化信息
自动分析软件包依赖关系
RPM软件包 软件素材参考:
5.1一般命名格式
bash shell环境 版本信息 4.1.2 15发布次数 x86_64硬件(为“i386”或“i686”等)
1.包文件组成 (每个包独有)
-
包内的文件
-
-
可能会有包安装或卸载时运行的脚本
2.数据库(公共):/var/lib/rpm (安装好后会将一些公共的数据放入数据库中)
-
程序包名称及版本
-
依赖关系
-
功能说明
-
包数据库(安装卸载都需要) [root@localhost /]# ll /var/lib/rpm 总用量 85752 -rw-r--r--. 1 root root 3792896 9月 27 18:40 Basenames -rw-r--r--. 1 root root 16384 9月 25 17:29 Conflictname -rw-r--r--. 1 root root 286720 9月 27 18:40 __db.001 -rw-r--r--. 1 root root 90112 9月 27 18:40 __db.002 -rw-r--r--. 1 root root 1318912 9月 27 18:40 __db.003 -rw-r--r--. 1 root root 1118208 9月 27 18:40 Dirnames -rw-r--r--. 1 root root 32768 9月 27 18:40 Group -rw-r--r--. 1 root root 20480 9月 27 18:40 Installtid -rw-r--r--. 1 root root 69632 9月 27 18:40 Name -rw-r--r--. 1 root root 32768 9月 27 18:40 Obsoletename -rw-r--r--. 1 root root 78053376 9月 27 18:40 Packages -rw-r--r--. 1 root root 2396160 9月 27 18:40 Providename -rw-r--r--. 1 root root 499712 9月 27 18:40 Requirename -rw-r--r--. 1 root root 131072 9月 27 18:40 Sha1header -rw-r--r--. 1 root root 73728 9月 27 18:40 Sigmd5 -rw-r--r--. 1 root root 8192 9月 27 18:40 Triggername
6.rpm命令格式
RPM软件可以实现几乎所有的功能,新增,删除,更新等
6.1查询
格式:
rpm [选项] 软件名
选项:
功能效果 | |
---|---|
rpm -qa(all) | 显示当前系统中以 RPM 方式安装的所有软件列表 |
rpm -q 软件名 | 查询指定软件是否已安装 |
rpm -qi 软件名 | 查看指定软件包的名称、版本、许可协议、用途描述等详细信息 |
rpm -ql(list) 软件名 | 显示指定的软件包在当前系统中安装的所有目录、文件列表 |
rpm -qc (configfiles ) 软件名 | 列出已安装的指定软件的配置文件 |
rpm -qd(docfiles) 软件名 | 列出已安装的指定软件的软件包文档所在位置 |
rpm -qR (requires) 软件名 | 列出已安装的指定软件的依赖的软件包及文件 |
rpm -qf(file) 软件名 | 查看指定的文件或目录是由哪个软件包所安装的 |
rpm-qpd | 查询未安装指定软件包的文档位置 |
rpm -qpi | 查询未安装指定软件包的完整名称详细信息 |
rpm -qpl | 查询未安装指定软件包的文件列表 |
rpm -qpc |
6.2挂载
格式:
mount 挂载的设备 挂载的文件夹路径 (已存在的空文件夹,非空文件夹原来的文件会被隐藏)
挂载的规则:
- 一个挂载点同一时间挂载了多个设备,只能看到最后一个挂载设备的数据,其它设备上的数据将被隐藏
- 一个设备可以同时挂载到多个挂载点
效果 | |
---|---|
-i | 安装一个新的RPM软件包 |
-U | 升级某个软件包,若未安装过则进行安装 |
-F | 升级某个软件包,若未安装过则直接结束 |
-h | 在安装或升级过程中已#号显示读条 |
-v | 显示安装过程的详细信息 |
--force | 强制安装某个软件包 |
-e 软件名 | 卸载指定的软件 |
--nodeps |
安装的路径:
含 义 | |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ |
1.重建RPM数据库
当RPM 数据库发生损坏,可通过 重建RPM 数据库 修复
rpm --rebuild 或者 rpm --initdb
2.导入验证公钥
7.编译安装
-
软件版本比较新,新功能,修复bug
-
可以自行定义配置文件的路径
-
程序包编译安装:
源代码-->预处理-->编译-->汇编-->链接-->执行
编译安装小脚本
8.yum安装
yum install 命令 -y //下载命令 yum install 软件名 -y //下载软件,自动解决依赖关系