安装与管理程序

169 阅读4分钟

源码包安装

源码包一般包含多个文件,为了方便发布,通常会将源码包做打包压缩处理,Linux 中最常用的打包压缩格式为“tar.gz”,因此源码包又被称为 Tarball。

优点:

  • 开源。如果你有足够的能力,则可以修改源代码。
  • 可以自由选择所需的功能。
  • 因为软件是编译安装的,所以更加适合自己的系统,更加稳定,效率也更高。
  • 卸载方便。

缺点:

  • 安装过程步骤较多,尤其是在安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写错误。
  • 编译时间较长,所以安装时间比二进制安装要长。
  • 因为软件是编译安装的,所以在安装过程中一旦报错,新手很难解决

应用程序的目录结构

文件类型保存目录
普通执行程序文件/usr/bin
服务器执行程序文件和管理程序文件/usr/sbin
应用程序配置文件/etc
日志文件/var/log
应用程序参考文档文件/usr/share/doc

常见的软件包封装类型

文件类型保存目录
RPM软件包扩展名为“.rpm”
DEB软件包扩展名为“.deb”
源代码软件包一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码
绿色免安装的软件包软件包的扩展名不一,以TarBall格式的居多 在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用

RPM包管理工具

优点

1.统一的安装包格式

2.已经编译完成

3.使用简便

缺点

需要有依赖关系

查询

常用

rpm -q[子选项]    软件名
选项功能效果
-qa显示当前系统中以 RPM 方式安装的所有软件列表
-q查询指定软件是否已安装
-qi查看指定软件包的名称、版本、许可协议、用途描述等详细信息
-ql显示指定的软件包在当前系统中安装的所有目录、文件列表
-qc列出已安装的指定软件的配置文件
-qd列出已安装的指定软件的软件包文档所在位置
-qR列出已安装的指定软件的依赖的软件包及文件
-qf查看指定的文件或目录是由哪个软件包所安装的
-qpd查询未安装指定软件包的文档位置
-qpi查询未安装指定软件包的完整名称详细信息
-qpl查询未安装指定软件包的文件列表
-qpc查询未安装指定软件包的配置文件位置

挂载

规则

  • 一个挂载点同一时间只能挂载一个设备
  • 一个挂载点同一时间挂载了多个设备,只能看到最后一个挂载设备的数据,其它设备上的数据将被隐藏
  • 一个设备可以同时挂载到多个挂载点
  • 通常挂载点一般是已存在空的目录
[root@localhost mnt]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载

安装、卸载与升级

基本格式

rpm [选项] 软件包

选项效果
-i安装一个新的RPM软件包
-U升级某个软件包,若未安装过则进行安装
-F升级某个软件包,若未安装过则直接结束
-h在安装或升级过程中已#号显示读条
-v显示安装过程的详细信息
--force强制安装某个软件包
-e卸载指定的软件
--nodeps在安装或升级、卸载一个软件包时,不检查与其他包的依赖关系

安装

[root@localhost Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm 
安装路径含 义
/etc/配置文件安装目录
/usr/bin/可执行的命令安装目录
/usr/lib/程序所使用的函数库保存位置
/usr/share/doc/基本的软件使用手册保存位置
/usr/share/man/帮助文件保存位置

卸载

[root@localhost Packages]# rpm -e 软件名

升级

[root@localhost Packages]#rpm -U 软件名(需要升级包)

源码编译安装的过程

三步

一: ./configure (软件作者写的脚本)

  1. 可以更改你的安装路径,

  2. 选择你要安装软件的功能

  3. 检测你的安装环境

二: make (将源代码 编译成二进制语言,常见的编译软件 gcc gcc-c++)

三: make install (将二进制数据写入硬盘,安装进系统)

./configure  

#环境检测   
#安装到哪个目录
#添加或删除模块功能

--prefix=PATH       //指定安装路径

make                //编译 将人类的高级语言翻译成二进制 

yum  install  gcc  gcc-c++ apr*

make  install       //将二进制安装进硬盘

yum安装

搭建本地yum仓库

vim local.repo         #写一个以repo 结尾的文件
[local]                #仓库的名字,可以自定义
name=local             #仓库的描述 自定义
baseurl=file:///mnt    #服务器的位置
gpgcheck=0             #是否启用检查包的完整性