安装及管理文件

优点:

  • 契合系统兼容性强
  • 如果你可以看懂源代码,修改新增功能
  • 比较自由

缺点:

  • 如果编译出了问题,你看不懂源代码,无法解决
  • 安装过程复杂
  • 没有统一的管理人员

安装过程

程序包编译安装:

源代码–>预处理–>编译–>汇编–>链接–>执行

预处理:./configure 定义模块和路径 (–prefix=PATH 指定路径) //在文件夹内有configure

编译:make

写入硬盘:make install

用途:

将下载的软件包解压并释放源代码包到指定的目录。

操作:

  • 使用tar命令将软件包解压到指定目录,一般选择/usr/src/目录(也可自建目录)。
  • 解包后的源代码文件位置:/usr/src/软件名-版本号。

用途:

设置安装目录、安装模块等选项。

操作:

使用源码目录中的configure脚本,执行 “./configure –help” 可查看帮助。

配置选项:

–prefix=软件安装目录

示例:

[root@localhost ~]# cd /usr/src/httpd-2.4.25 //切换至源代码包释放目录
[root@localhost httpd-2.4.25]# ./configure –prefix=/usr/local/apache //运行configure脚本,检测安装环境,并指定安装目

用途:

  • 生成可执行的二进制文件。
  • 复制二进制的文件到系统,配置应用环境。

操作步骤:

  • 编译:执行make命令。
  • 安装:执行make install命令。

示例:

[root@localhost httpd-2.4.25]# make //编译
[root@localhost httpd-2.4.25]# make install //安装

mkdir /app //建立文件夹
cd /data
tar xf httpd-2.4.29.tar.bz2 //解压源码包
cd httpd-2.4.29/
yum install apr gcc pcre* -y //安装依赖环境需要的 工具包
./configure –prefix=/app //选择安装目录
make -j2 //编译 j2 代表使用2颗cpu编译
make install //写进硬盘
systemctl stop firewalld //关闭防火墙
setenforce 0
cd /app/
cd /app/bin
/app/bin/apachectl start //开启服务
ss -ntap |grep 80 //有就没问题
/app/bin/apachectl stop //停止服务

格式:

yum [option] [command] [package…]

常用命令:

  1. yum install

配置本地yum源

[root@localhost ~]mount /dev/sr0 /mnt/ //将光盘挂载到/mnt目录下

注意:mount命令是一次性挂载,退出当前终端或重启后就不存在了。永久挂载需要修改配置文件。

[root@localhost ~]# cd /etc/yum.repos.d/ //切换至/etc/yum.repos.d/
[root@localhost ~]# mkdir bak //创建一个名为bak的新目录
[root@localhost ~]# mv *.repo bak/ //将yum仓库中以.repo结尾的文件移动到bak中

[root@localhost yum.repos.d]# vim local.repo //新建yum仓库文件
[local]
name=local //设置名称
baseurl=file:///mnt //设置链接地址,file://是固定格式,挂载在/mnt
gpgcheck=0 //无需验证公钥
enabled=1 //开启此yum源

:wq //保存退出

[root@localhost yum.repos.d]# yum clean all //清除缓存
[root@localhost yum.repos.d]# yum makecache //重新建立元数据
[root@localhost yum.repos.d]# yum list //查看可安装的软件列表
[root@localhost yum.repos.d]# yum install httpd -y //安装httpd测试是否成功

优点:

  • 统一的安装包格式
  • 已经帮你编译完成
  • 使用简单

缺点:

  • 有依赖关系

查询已安装的 RPM 软件信息

rmp -q[子选项] [软件名]

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

查询未安装的RPM软件包文件信息

rmp -qp[子选项] RPM包文件

选项 功能效果 -qp 查询未安装的软件包 -qpd 查询未安装的指定软件包的文档位置 -qpi 查询未安装的指定软件包的完整名称等详细信息 -qpl 查询未安装的指定软件包的文件列表 -qpc 查询未安装的指定软件包的配置文件位置

安装、升级、卸载RPM软件包

rpm -ivh tree-1.6.0-10.el7.x86_64.rpm

rpm -U 软件名 (要升级包)

选项 说明 -h 在安装或升级软件包的过程中,以”#”号显示安装进度。 – -force 强制安装某个软件包,比如要安装版本更旧的软件包。 -v 显示软件安装过程中的详细信息 –nodeps 在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系,强制安装

rpm -e 软件名 (缩写)

以上三种都是可以安装软件包的,具体用哪一种看具体情况。 因为PRM安装软件包时有依赖关系,所以一般使用YUM安装和源码编译安装

Original: https://www.cnblogs.com/fengxia6/p/16728287.html
Author: 风夏呀
Title: 安装及管理文件

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577770/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 一文剖析HTML块和内联元素以及DIV容器,运维开发必备前端技能,基本功强化训练。

    写在开篇 运维开发必备前端技能!虽然很枯燥,知识点很多,但要坚持住哦!笔者和大家一起坚持。本篇和大家一起巩固html中的块元素和内联元素以及DIV容器。 块元素 块元素的特点是啥?…

    Linux 2023年6月7日
    0120
  • 代码审计-Typecho反序列化getshell

    0x01 漏洞代码 install.php: php $config = unserialize(base64_decode(Typecho_Cookie::…

    Linux 2023年5月28日
    095
  • grep

    grep 基本匹配: grep a*re hello.txt –* …

    Linux 2023年6月11日
    088
  • Redis无法向磁盘写入RBD数据

    由于客户为了安全规范,规定Redis不能再root权限下运行,所以要进行降权切成普通用户等操作,刚刚做完切权操作。客户监控发出来项目服务的报错邮件,经过查看发现是Redis问题. …

    Linux 2023年6月8日
    0115
  • 笔记:linux 总结

    1.开始 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和…

    Linux 2023年6月14日
    0108
  • uniapp封装request请求,常用公共函数等,非常实用

    1、项目目录如下图,utils目录下的文件和main.js文件在下面可以直接下载使用 2、demo案例,前端代码 php;gutter:true; export default {…

    Linux 2023年6月7日
    0110
  • locate-updatedb命令检索不全

    执行updatedb 命令,用于立刻更新locate 命令所必需的数据库文件,但有些文件可能会在检索过程中被过滤掉。 有时候明明存在的文件,用find 命令都能搜得出来,但用loc…

    Linux 2023年6月13日
    097
  • Git的使用

    Git的概念 Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目 Git的安装 Git官网https://git-scm.com/下载安装直接下一步…

    Linux 2023年6月13日
    093
  • shell脚本中 /dev/null 的用途

    /dev/null 是一个特殊的设备文件,它丢弃一切写入其中的数据 可以将它 视为一个黑洞, 它等效于只写文件, 写入其中的所有内容都会消失, 尝试从中读取或输出不会有任何结果,同…

    Linux 2023年6月13日
    0102
  • ASCLL 字符码

    信息在计算机上是用二进制数表示的,这种表示法让人很难理解。因此,计算机上都配有输入和输出设备,这些设备的主要目的就是以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为…

    Linux 2023年6月7日
    0108
  • CentOS 8 上安装和配置 nginx

    1、检查yum上的nginx版本 yum info nginx 2、安装nginx yum install nginx 3、将服务设置为每次开机启动 sudo systemctl …

    Linux 2023年5月27日
    0126
  • KVM http网络加载镜像报错(mount: wrong fs type, bad option, bad superblock on /dev/loop0)

    curl: (23) Failed writing body (7818 != 16384)loop: module loadeddracut-initqueue[579]: mo…

    Linux 2023年6月6日
    0151
  • Linux NTP服务配置

    bash;gutter:true; 外部ntp服务器地址:0.cn.pool.ntp.org 内部ntp服务器地址1:192.168.57.200 内部ntp服务器地址2:192….

    Linux 2023年6月13日
    054
  • Linux网络服务之部署YUM仓库

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 1 YUM简介 1.1 YUM简介 CentOS使用yum和dnf 解决rpm的包依赖关系。 YUM:rpm的前端程序,可解决软…

    Linux 2023年5月27日
    0123
  • 写给初学者的Linux errno 错误码机制

    不同于Java的异常处理机制, 当你使用C更多的接触到是基于错误码的异常机制, 简单来说就是当调用的函数发生异常时, 程序不会跳转到一个统一处理异常的地方, 取而代之的是返回一个整…

    Linux 2023年5月27日
    090
  • Linux vi/vim

    1.vi/vim快捷键位图 详细可以参考:https://www.runoob.com/w3cnote/all-vim-cheatsheat.html 2.vi/vim的三种模式 …

    Linux 2023年6月8日
    0103
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球