linuxOPS系统服务_Linux下软件的安装方式之源码安装

news2024/11/14 12:21:54

Linux下有哪些软件安装方式

① RPM软件包管理(软件名称.rpm)

② YUM软件包管理(使用yum命令install + 软件名称) => 下载 + 安装一体化

③ 源码编译安装(相对来说是最复杂的一种方式)

软件包类型

☆ 二进制软件包(rpm包)

在这里插入图片描述

  1. 二进制包,指的是已经[^编译]好了的软件包,只需要直接安装就可以使用。
  2. 二进制包,不需要编译,直接下载安装即可
  3. 二进制包,需要根据自己的计算机CPU以及操作系统去选择合适

类似Windows中的.exe文件,如qq.exe

软件源码包

什么是源码包?有什么特点?

  1. 源码包,指的是程序员写的原始的程序代码文件不能直接在计算机上运行
  2. 源码包,需要进行编译,变成二进制的软件包后,才可安装使用
  3. 源码包,一般可以在任何的计算机上安装使用
  4. 源码包,命名方式一般为:
    • 软件包名.tar.gz
    • 软件包名.tar.bz2
    • 软件包名.tar.xz
    • 软件包名.zip

类似于腾讯QQ开发工程师 => QQ的源代码发给你了 .c => 编译 => QQ.exe文件

二进制源码包(.src.rpm)

什么是二进制源码包?有什么特点?

  1. 二进制源码包,是一个半成品,安装后不能直接使用
  2. 二进制源码包,需要使用rpmbuild工具重建成真正的rpm包或者重建成源码包才可安装使用
  3. 二进制源码包,命名方式一般为:
    • mysql-community-5.7.25-1.el6.==src.==rpm
    • mysql-community-5.7.25-1.el7.src.rpm

常见的二进制软件包

在这里插入图片描述

总结二进制包和源码包区别

在这里插入图片描述

二进制软件包的安装方式

① 基于RPM进行安装(先下载软件然后本地进行安装)

② 基于YUM进行安装(在线下载然后安装)

RPM软件包安装

获取软件

Linux只是内核,Linux发行版本:GNU/Linux

  1. RedHat/Centos光盘或官方网站 ftp://ftp.redhat.com
  2. 推荐网站
    • www.rpmfind.net
    • rpm.pbone.net
  3. 相应软件官方网站
    • http://www.mysql.com
    • http://nginx.org/packages/
如何选择合适的软件
  1. 选择适合当前系统的版本号
    • 找不到适合的,才去尝试别的系统版本号
    • el6兼容el5;el5无法安装 el6
  2. 选择适合当前计算机cpu的架构
    • x86_64包,只能安装在64位的系统上
    • i386,i586,i686的软件包可以安装在32和64位系统上
    • noarch表示这个软件包与硬件构架无关,可以通用
    • 32位系统不能安装64位包

建议: 建议不要跨大版本号去安装软件包,尽量使用当前系统版本自带软件包安装

rpm软件包的安装、卸载以及升级

安装:

rpm -ivh 软件包名称

卸载:

rpm -e 软件包名称 [–nodeps强制]

查询:

rpm -q 软件名称

rpm -qa |grep 软件名称

升级:

rpm -Uvh 软件包名称

注意:rpm -Uvh不仅可以升级软件,其实它也可以安装软件。

RPM包管理:以上操作都比较简单,但是在实际应用过程中,可能会遇到问题,很多rpm软件包在安装时都会提示软件依赖。那这个问题如何解决呢?

方法一:根据提示一个一个软件包安装,先解决依赖在回来安装软件

方法二:使用yum install 安装rpm软件包

yum install 软件名称.rpm

以上安装方式的最大好处是,如果安装软件时,产生了依赖,不用担心,yum会自动帮助我们解决这些问题的!

源码安装

获取软件的源码包

可以去某个软件的官网获取,官网一般摆放的都是源码包*.tar.gz

源码安装三步走

① 配置./configure(配置软件安装路径,也可以不配置,不配置使用默认路径)

② 编译make(把软件的源代码做成类似rpm的可以直接按照的软件)

③ 安装make install(把刚才编译好的程序进行安装到Linux系统)

使用源码安装安装cmatrix代码雨

这是今天要安装的软件
https://download.csdn.net/download/weixin_44368963/87917140
在这里插入图片描述

第一步:对软件进行解压缩

tar -zxf cmatrix-1.2a.tar.gz

tar xf cmatrix-1.2a.tar.gz,因为默认解压都是使用gzip工具

在这里插入图片描述

第二步:进入到cmatrix文件夹,然后对软件进行配置

cd cmatrix-1.2a

在这里插入图片描述
其中 cmatrix.c是软件的源码,
./configure => 设置软件默认安装的位置等信息,执行这个

在这里插入图片描述

好吧,执行出错error: no acceptable cc found in $PATH,
在$PATH中找不到可接受的抄送
欠缺c的编译器,这里给它安装两个

yum install gcc gcc-c++

在这里插入图片描述

安装好后重新执行cmatrix的配置
在这里插入图片描述
这样cmatrix就配置好了
在这里插入图片描述

配置好make后就可以安装了

make

好吧又出错误了
在这里插入图片描述
出现以上问题的主要原因在于系统中没有找到ncurses-devel软件包
没有就安装

 yum install gcc gcc-c++ ncurses-devel -y

在这里插入图片描述
再重新执行配置

make

…nn的又出错了
在这里插入图片描述
一堆未定义的引用,这个好理解,大概率是之前配置时因为缺少编译环境所有导致编译失败遗留下来的,把这个包删了重新解压配置一边

然后再重新编译
在这里插入图片描述
编译好后就可以安装了

make install

在这里插入图片描述
然后测试一下
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/660206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十二、docker学习-docker核心docker网络之bridge网络(2)

bridge网络 bridge网络表现形式就是docker0这个网络接口。容器默认都是通过docker0这个接口进行通信。也可以通过docker0去和本机的以太网接口连接,这样容器内部才能访问互联网。 # 查看docker0网络,在默认环境中,一个名为docker0的linux b…

Go语言的TCP和HTTP网络服务基础

目录 【TCP Socket 编程模型】 Socket读操作 【HTTP网络服务】 HTTP客户端 HTTP服务端 TCP/IP 网络模型实现了两种传输层协议:TCP 和 UDP,其中TCP 是面向连接的流协议,为通信的两端提供稳定可靠的数据传输服务;UDP 提供了一种…

NodeJSMongodbMVC管理开发⑨

文章目录 ✨文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持😘前言MVC思想开发 服务器代码演示 M层 Services 或 Model V层 Views C层 Controllers总结 ✨文章有误请指正,如果觉得对你有用&#xff0c…

C语言笔记之结构体总结

C语言笔记之结构体总结 code review! 文章目录 C语言笔记之结构体总结一.介绍二.3种结构体类型变量说明1. 先定义结构,再定义结构变量2. 定义结构体类型的同时说明变量3. 直接说明结构变量(匿名结构体) 四.结构体成员表示方法五.结构体指针做参数六.结构体初始化1…

阵列信号处理笔记(2):均匀线阵、均匀加权线阵、波束方向图

阵列信号处理笔记(2) 文章目录 阵列信号处理笔记(2)均匀线阵(Uniform Linear Array)均匀加权线阵波束方向图的关键参数附polardb.m用来计算HPBW的Mathematica代码,以及用于拟合的数据拟合的MATL…

二、DSMP/OLS等夜间灯光数据贫困地区识别——MPI和灯光指数计算

一、前言 其实在计算MPI和灯光指数之前,最重要是DMSP/OLS等夜间灯光指数的校正还有就是MPI计算,那么校正分为DMSP/OLS和NPP/VIIRS夜间灯光数据,DMSP/OLS夜间灯光数据校正主要采取不变目标区域法原理进行校正,当前对其有很多优化后的做法,但是万变不离其宗,核心思想还是没…

LeetCode257. 二叉树的所有路径

写在前面: 题目链接:LeetCode257. 二叉树的所有路径 题目难度:简单 编程语言:C 一、题目描述 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的…

阿里P8架构师手码的Java工程师面试小抄在Github火了,完整版限时开源

网上的 JAVA 面试文档更是层出不穷。但是单单刷 JAVA 面试题就足够了吗? 答案显然是不够的!那么为什么呢? 因为现在的程序员就业环境早就和两年前不可同日而语了。 如果你在两年前面试: 就拿 JVM 来说,刷面试题可能…

Springboot+vue.js+协同过滤推荐+余弦相似度算法实现新闻推荐系统

Springbootvue.js协同过滤推荐余弦相似度算法实现新闻推荐系统 - 简书 针对海量的新闻资讯数据,如何快速的根据用户的检索需要,完成符合用户阅读需求的新闻资讯推荐?本篇文章主要采用余弦相似度及基于用户协同过滤算法实现新闻推荐&#xff0…

SpringMvc详解

SpringMvc用来代替展示层Servlet,均属于Web层开发技术 Servlet是如何工作的 1、导入Servlet依赖坐标 2、创建一个Servlet接口实现类,重写其中的所有方法 3、在Servlet实现类上加上WebServlet注解,用来配置Servlet访问路径 4、启动Tomca…

Misc(6)

隐藏的钥匙 还是一样挨个试,详细信息里没有发现flag信息,就用010打开试试 文件头正常,暂时没有发现隐藏文件 喝,多搜搜还是有收获的,一开始以为是有隐藏文件就利用ctrlf在010中进行搜索 分别搜索了txt和rar文件都没有反…

VLAN基础知识2_VLAN二层通信原理

目录 1.VLAN二层通信简介 2.同一交换机VLAN二层通信 3.跨交换机VLAN二层通信 4.VLAN二层通信实验 4.1 VLAN基本配置命令 4.2 VLAN配置步骤 4.3 VLAN二层通信实验效果 1.VLAN二层通信简介 VLAN是一个逻辑上的分组,可以将一个物理网络端口分割成多个虚拟网络&…

C++初始化列表详解

写在前面: 初始化列表是一种用于初始化成员变量的语法结构,它可以在类的构造函数中使用,用于初始化类的成员变量。 而 列表初始化指的是 是一种初始化变量的简洁方式,可以用花括号{}来表示。列表初始化可以用于各种类型的变量&…

某农业大学c/c++第五次实验(类和对象)

1.Time时间类 【问题描述】 设计一个Time类,并设计多个重载的构造函数,可以设置时间、进行时间的加减运算、按12小时格式和24小时格式输出时间。 例如: 其中构造函数Time::Time(int s)根据总秒数计算hour、minute、second并构造对象&#x…

C语言,BMP格式解析,生成不同位深的图片。

0.前言 目录 0.前言 1.BMP格式详解 1.1图片的构成 1.2BMP格式 1.2.1文件头 1.2.2位图信息头 1.2.3调色板 1.2.4位图数据 2.生成 3.总结 最近工作任务繁重且对我来说小有难度,但是没有困难的事情做起来怎么有收获呢? 今天推荐一本书《寻找光…

Windows10环境下载安装Oracle19c教程

Windows10环境下载安装Oracle19c教程 前言1. 官网下载2. 运行setup.exe2.1 解压缩2.2 报错解决 3.正式安装3.1 配置选项3.2 系统类3.3 oracle主目录用户3.4 安装位置3.5 先决条件检查3.6 安装产品3.7 安装完成3.8 完全卸载oracle(非必备) 4. 安装验证4.1 CMD验证4.2 SQL Plus4.…

本周大新闻|Quest游戏订阅服务曝光;平价版苹果XR头显25年推出

本周XR大新闻,AR方面,彭博苹果预计25年推出更亲民头显;Vision Pro外屏含微透镜;WWDC23苹果高管脱口秀爆料更多细节;外媒爆料称Vision Pro预期销量改为15万台;VitreaLab展示RGB激光背光技术。还是提前说一下…

leetcode刷题之字符串相关问题

344.反转字符串 方法一:找中间结点,头尾翻转 var reverseString function(s) {let len s.lengthlet mid Math.floor((s.length - 1) / 2) //向下取整 如果长度是奇数,那么mid是最中间的结点 如果长度是偶数,那么mid是中间两个…

【Java技术专题】「攻破技术盲区」带你攻破你很可能存在的Java技术盲点之动态性技术原理指南(反射技术专题)

带你攻破你很可能存在的Java技术盲点之动态性技术原理指南 带你攻破你很可能存在的Java技术盲点之动态性技术原理指南编程语言的类型静态类型语言动态类型语言 技术核心方向反射API反射案例介绍反射功能操作获取构造器长度可变的参数 - 构造方法使用反射 API 获取参数长度可变的…

【软件测试】

系列文章目录 文章目录 系列文章目录前言第四章 单元测试4.1 软件测试过程概述4.2 什么是单元测试4.2.1 单元测试的定义4.2.2 单元测试的重要性4.2.3 单元测试原则 4.3 单元测试的目标和任务4.3.1 单元测试的目标:单元模块被正确编码4.3.2 单元测试的主要任务 4.4 单…