Lunix下软件安装

2023-11-10

1. Tarball 的产生和使用

1.1 make与configure

make是能够对文件进行编译的简化指令。通常软件开发商都会写一支文件名为 configure 或者是 config 的侦测程序来侦测用户的作业环境,侦测完毕后主动的建立记录了原始码如何编译的Makefile 的规则文件。执行 make 时,make 会在当时的目录下搜寻Makefile (or makefile) 文本文件进行编译。

1.2 tarball软件

1.2.1 什么是tarball软件

所谓的 Tarball 文件,其实就是将软件的所有原始码文件先以 tar 打包,然后再以压缩技术来压缩,通常最常见的就是以 gzip 来压缩了。因为利用了 tar 与 gzip 的功能,所以 tarball 文件一般的扩展名就会写成 *.tar.gz 或者是简写为 *.tgz !
Tarball 本质上是一个软件包, 妳将他解压缩之后,里面的文件通常就会有:

1. 源代码文件;

2. 侦测程序文件 (可能是 configure 或 config 等檔名);

3. 本软件的简易说明与安装说明 (INSTALL 或 README)

1.2.2 如何安装一个Tarball软件 

1. 将 Tarball 由厂商的网页下载下来;

2. 将 Tarball 解开,产生很多的原始码文件;

3. 开始以 gcc 进行原始码的编译 (会产生目标文件 object files);

4. 然后以 gcc 进行函式库、主、子程序的链接,以形成主要的 binary file;

5. 将上述的 binary file 以及相关的配置文件安装至自己的主机上面。

上面第 3, 4 步骤当中,我们可以透过 make 这个指令的功能来简化他,但前提是需要你至少有 gcc 以及 make 这两个软件在你的 Linux 系统里面才行。

1.2.3 makefile文件规则与make示例

makefile文件规则为:

1. 在 makefile 当中的 # 代表批注;
2. <tab> 需要在命令行 (例如 gcc 这个编译程序指令) 的第一个字符;
3. 目标 (target) 与相依文件(就是目标文件)之间需以『:』隔开。

创建一个clean动作的make:

在makefile中使用变量:

变量的基本语法为:

1. 变量与变量内容以『=』隔开,同时两边可以具有空格;

2. 变量左边不可以有 <tab> ,例如上面范例的第一行 LIBS 左边不可以是 <tab>;

3. 变量与变量内容在『=』两边不能具有『:』;

4. 在习惯上,变数最好是以『大写字母』为主;

5. 运用变量时,以 ${变量} 或 $(变量) 使用;

6. 在该 shell 的环境变量是可以被套用的,例如提到的 CFLAGS 这个变数!

7. 在指令列模式也可以给予变量。

2 软件安装RPM、SRPM与YUM

2.1 常见的软件安装方式

目前在 Linux 界软件安装方式最常见的有两种,分别是:

1. dpkg:

这个机制最早是由 Debian Linux 社群所开发出来的,透过 dpkg 的机制, Debian 提供的软件就能够简单的安装起来,同时还能提供安装后的软件信息。 只要是衍生于 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的, 包括 B2D, Ubuntu 等等。文件后缀为.deb。

2. RPM:

这个机制最早是由 Red Hat 这家公司开发出来的,后来实在很好用,因此很多 distributions 就使用这个机制来作为软件安装的管理方式。包括 Fedora, CentOS, SuSE 等等知名的开发商。文件后缀为.rpm。

2.2 RPM与SRPM

RPM 全名是『 RedHat Package Manager 』简称则为 RPM 啦!顾名思义,当初这个软件管理的机制是由 Red Hat 这家公司发展出来的。 RPM 是以一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。

他最大的特点就是将你要安装的软件先编译过, 并且打包成为 RPM 机制的包装文件。

SRPM 是 Source RPM 的意思,也就是这个 RPM 文件里面含有原始码!特别注意的是,这个 SRPM 所提供的软件内容『并没有经过编译』, 它提供的是原始码!通常 SRPM 的扩展名是以 ***.src.rpm 这种格式来命名的。

yum 可以直接用来进行安装的动作,基本上 rpm 这个指令真的就只剩下查询与检验的功能了! 

2.3 RPM的使用

2.3.1 安装

rpm -ivh package_name

选项与参数:

-i :install 的意思

-v :察看更细部的安装信息画面

-h :以安装信息列显示安装进度

2.3.2 升级与更新

使用 -Uvh 或 -Fvh 来升级。

2.3.4 查询

2.4 YUM使用

yum 是透过分析 RPM 的标头资料后, 根据各软件的相关性制作出属性相依时的解决方案,然后可以自动处理软件的相依属性问题,以解决软件安装或移除与升级的问题。 

由于 distribution 必须要先释出软件,然后将软件放置于 yum 服务器上面,以提供客户端来要求安装与升级之用的。 因此我们想要使用 yum 的功能时,必须要先找到适合的 yum server 才行!而每个 yum server 可能都会提供许多不同的软件功能,那就是我们之前谈到的『软件库』!因此,你必须要前往 yum server 查询到相关的软件库网址后,再继续处理后续的设定事宜。

查询功能:yum [list|info|search|provides|whatprovides] 参数

安装/升级功能:yum [install|update] 软件

移除功能:yum [remove] 软件

2.5 SRPM 

略过

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lunix下软件安装 的相关文章

随机推荐

  • 自定义MVC(增删改查)

    自定义MVC 对书籍的增删改查 1 箭头代表不需要的类 2 框住的部分代表通用工具类 在这篇博客可以复制过来 https blog csdn net wx1762813417 article details 96798945 3 用短红线标
  • 如何查看linux是否安装jdk?

    看看 是否设置了jdk环境变量 echo JAVA HOME 或运行命令 java version 看看能否查看版本 能就是运行 或者查看后台进程 ps ef grep java
  • 新手入门Java企业开发,学习技术路线分享

    小白入门Java企业开发 学习技术路线分享 前言 学习开发在社会人群中主要有几类人群一类是以技术为生 一类是兴趣爱好人群还有一类是工作技术协助实现 本文主要提供给那些准备学习编程 入行编程的人群 希望能通过本文提供大家一个学习的路线能实现各
  • 数据库某列数据相乘

    1 基本思路 Oracle MySQL等数据库中只有sum max min等函数用于做某列数据聚合 而没有办法直接计算某列数据的乘积 所以需要另想办法 根据数学对数的加法原理 可对该列中所有数据取对数 后sum再做指数运算 即可得出所需结果
  • CDN加速的域名如何查找真实IP

    步骤一 通过该站点查找域名解析的历史记录 https toolbar netcraft com site report url xxx xxx com 步骤二 通过C段扫描来查找其真实的IP地址
  • jenkins-1.59+sonarqube-6.1+sonar-scanner-2.8+hg-3.9.2+maven-3.3.9+shell检查打包编译java项目

    本篇介绍centos7上以下几点的安装 1 sonarqube的安装 2 sonar scanner安装 3 mysql5 7的安装 4 jenkins sonarqube sonar scanner hg maven持续集成部署 官网下载
  • ps制作动态html,PS制作动态海报教程

    PS制作动态海报教程 4月 20 2019 发表于 视觉设计 评论 Sponsor 在新媒体时代 动态海报已经是平面设计师必备技能 C4D和AE如今已经变成设计软件的中坚力量 但是对于平面设计来说 这些软件还是门槛太高 那该怎么办呢 今天和
  • 19黑马笔记之二叉树的创建

    19黑马笔记之二叉树的创建 1 思想 一个一个节点的创建 先从根节点开始 若输入为 则该节点为空 若不是 则再次调用函数 给该节点创建左右孩子 最后返回该节点 2 实现代码 并不是很常用 了解一下即可 define CRT SECURE N
  • 如何使用streamlit实现端口扫描结果的可视化

    要使用Streamlit实现端口扫描结果的可视化 可以使用Python的第三方库pympler来分析内存使用情况 以下是一个简单的示例代码 from pympler import asizeof import streamlit as st
  • AIGC入门须知

    布道 AI 让更多普通人意识到新时代已经到来 毕竟早人一步就是红利 一 GPT 介绍 一 GPT 概述 GPT 是一种自然语言处理技术的聊天机器人 它能够实现智能对话 回答用户提问 完成任务等功能 具体来说 GPT 能够通过学习语言模式 理
  • 【前端面试题——JS篇】

    目录 1 javascript都有哪些数据类型 如何存储的 2 判断数据类型的方法有哪些 有什么区别 3 说说你对事件循环的理解 4 说说你对BOM的理解 BOM的核心都有哪些 作用是什么 5 Bind call apply有什么区别 如何
  • Python进阶-----面对对象7.0(细谈__new__方法和__init__方法)

    目录 前言 init 方法 new 方法 重点 1 new 方法的调用过程 2 重写 new 方法 3 new 方法不同返回值的情况 3 单例模式 前言 上一期初步介绍了 new 方法 但是实际上这个方法还有非常多的内容值得去讲一讲 学会了
  • Qt编译没使用Q_OBJECT导致编译出错,然后加入后编译仍出错的解决方法。

    这个问题 困扰我一下午 之前没加Q OBJECT导致不能使用信号和槽功能 导致我的程序已知编译出错 后来发现加上后 还是不能编译成功 继续出错 最后在overfolow stack上面找到了答案 原因首先是编译时没加Q OBJECT导致编译
  • Loss和神经网络训练

    出处 http blog csdn net han xiaoyang article details 50521064 声明 版权所有 转载请联系作者并注明出处 1 训练 在前一节当中我们讨论了神经网络静态的部分 包括神经网络结构 神经元类
  • 个人学习网站指南

    个人学习网站指南 一 书籍 二 视频 三 教程 四 实用 五 工具 六 行业 七 百科综合 八 博客论坛 九 官网 十 学习导航 个人平时使用到的一些网站 以免费为主 主要是为了自己以后需要用到能快速导航 持续更新 一 书籍 Free Co
  • [696]我的足迹精华贴@CSDN年度之“战”

    今天是2020年12月24日 距离2021年仅剩7天 临近年末 休几天假 看到CSDN新的征文活动 在犹豫中还是决定写一写年度总结 回顾一下2020 展望一下2021 CSDN血缘 那就先从如何与CSDN有了血缘关系说起吧 先聊聊我参与过的
  • 优秀笔记软件盘点—好看、强大的可视化笔记软件、知识图谱工具

    只推荐优质应用 推荐真正的思维工具 Heptabase 氢图 Walling Reflect InfraNodus TiddlyWiki FlowUs Heptabase 介绍 一款融合白板的可视化卡片笔记 优点 Hepta 提供了多面一体
  • stm32固件库(STM32F10x标准外设库)V3.5简介

    STM32F固件库是根据CMSIS ARM Cortex微控制器软件接口标准 而设计的 CMSIS标准由ARM和芯片生产商共同提出 让不同的芯片公司生产的Cortex M3微控制器能在软件上基本兼容 STM32F10x的固件库是一个完整的软
  • FFmpeg推送的流,播放端播放时花屏问题总结

    1 前言 很多次遇到了这种问题 在这里做一下总结 2 问题总结 第一 是播放端读取缓冲区不够 有时候 高清码流 一帧就好几兆 所以缓冲区要足够长 对于基于FFmpeg的播放器 应该是下面的参数 av dict set this gt opt
  • Lunix下软件安装

    1 Tarball 的产生和使用 1 1 make与configure make是能够对文件进行编译的简化指令 通常软件开发商都会写一支文件名为 configure 或者是 config 的侦测程序来侦测用户的作业环境 侦测完毕后主动的建立