当前位置: 首页 > news >正文

上位机知识篇---Linux源码编译安装链接命令


文章目录

  • 前言
  • 第一部分:Linux源码编译安装
    • 1. 安装编译工具
    • 2. 下载源代码
    • 3. 解压源代码
    • 4. 配置
    • 5. 编译
    • 6. 测试(可选)
    • 7. 安装
    • 8. 清理(可选)
    • 9.注意事项
  • 第二部分:链接命令
    • 硬链接(Hard Link)
      • 1.硬链接与原始文件完全相同
      • 2.删除原始文件不会影响硬链接
      • 3.硬链接不会跨文件系统创建
      • 4.硬链接不会链接目录
    • 软链接(Symbolic Link)
      • 1.软连接类似于Windows中的快捷方式
      • 2.删除原始文件会影响软连接
      • 3.软连接可以跨文件系统创建
      • 4.软连接可以链接文件或目录
    • 使用链接的注意事项
  • 总结


前言

以上就是今天要讲的内容,本文简单介绍了Linux操作系统的源码编译安装和链接命令使用。


第一部分:Linux源码编译安装

在Linux系统中,许多软件包都是以源代码的形式发布的,用户可以从源代码编译和安装软件。以下是编译安装软件的一般步骤:

1. 安装编译工具

在开始编译之前,确保你的系统安装了必要的编译工具。通常,你需要安装以下软件包:

build-essential(在Debian和Ubuntu上)
gcc、make、autoconf、automake、libtool(在其他发行版上)

例如,在Debian或Ubuntu上,你可以使用以下命令安装:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential

2. 下载源代码

从软件的官方网站或**代码仓库(如GitHub)**下载源代码压缩包。

wget https://example.com/software.tar.gz
或者使用git克隆仓库:git clone https://github.com/user/software.git

3. 解压源代码

解压下载的源代码压缩包

tar -xvf software.tar.gz
cd software
对于.tar.bz2文件,使用tar -xjf。

4. 配置

进入解压后的目录,通常会有一个配置脚本configure,用于配置编译选项

./configure

你可以使用**./configure --help查看所有可用的配置选项**。

5. 编译

执行make命令开始编译

make

这个过程可能会需要一些时间,具体取决于软件的大小和复杂性。

6. 测试(可选)

在安装之前,你可以运行测试来确保编译无误

make test

7. 安装

使用make install命令安装软件。

sudo make install

这通常会将软件安装到系统的默认位置,例如**/usr/local/bin**。

8. 清理(可选)

编译完成后,你可以清理编译过程中产生的中间文件

make clean

如果需要完全清理,包括配置文件,可以使用:

make distclean

9.注意事项

  1. 在安装之前,请确保阅读软件的README和INSTALL文件,这些文件可能包含特定于该软件的安装说明。
  2. 如果软件包有特定的依赖关系,你需要先安装这些依赖。
  3. 编译安装的软件可能需要手动管理更新,不像使用包管理器那样方便。
  4. 在某些情况下,你可能需要设置环境变量,例如LD_LIBRARY_PATHPKG_CONFIG_PATH,以便编译器找到必要的库文件
    编译安装软件是一个涉及多个步骤的过程,但通过这种方式,你可以获得软件的最新版本,并根据自己的需求进行定制。

第二部分:链接命令

在Linux操作系统中,链接是文件系统中的一个重要概念,它允许用户创建指向文件或目录的引用,类似于Windows系统中的快捷方式。Linux中的链接主要有两种类型:硬链接(Hard Link)和软链接(Symbolic Link,也称为符号链接或symlink)

硬链接(Hard Link)

硬链接是文件系统中的实际文件的一个或多个名称硬链接直接指向文件的inode(即文件在磁盘上的实际位置)。以下是硬链接的一些特点:

1.硬链接与原始文件完全相同

硬链接与原始文件完全相同,它们共享相同的inode号和文件内容。

2.删除原始文件不会影响硬链接

删除原始文件不会影响硬链接,因为它们都指向相同的inode。只有当所有硬链接和原始文件都被删除时,文件的数据才会被删除。

3.硬链接不会跨文件系统创建

硬链接不能跨文件系统创建。

4.硬链接不会链接目录

硬链接不能链接目录。
创建硬链接的命令如下:

ln /path/to/original/file /path/to/hard/link

软链接(Symbolic Link)

**软链接是一个指向另一个文件的特殊文件,它包含了一个路径名,指向它所引用的文件或目录。**以下是软链接的一些特点:

1.软连接类似于Windows中的快捷方式

软链接类似于Windows中的快捷方式,它是一个独立的文件,有自己的inode号和文件属性

2.删除原始文件会影响软连接

如果原始文件被删除,软链接将变成“断开的链接”(dangling link),不再指向有效目标。

3.软连接可以跨文件系统创建

软链接可以跨文件系统创建。

4.软连接可以链接文件或目录

软链接可以链接文件或目录。
创建软链接的命令如下:

ln -s /path/to/original/file /path/to/symbolic/link

使用链接的注意事项

  1. 当使用链接时,应当小心不要创建循环链接,这会导致文件系统损坏。
  2. 在备份文件系统时,硬链接可能会引起混淆,因为它们看起来像是多个文件,但实际上是同一个文件的不同名称。
  3. 移动或重命名文件时,硬链接可能会失效,因为它们包含的是绝对路径
  4. 链接的查看和管理
    使用ls -l命令可以查看文件的链接数(硬链接的数量)。
    使用readlink命令可以查看软链接指向的目标。
    使用ln和ln -s命令可以创建硬链接和软链接。
    使用rm命令可以删除链接,与删除普通文件的方式相同。
    理解Linux中的链接对于管理文件系统和执行高级文件操作非常有用。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Linux操作系统的源码编译安装和链接命令使用。

相关文章:

上位机知识篇---Linux源码编译安装链接命令

文章目录 前言第一部分:Linux源码编译安装1. 安装编译工具2. 下载源代码3. 解压源代码4. 配置5. 编译6. 测试(可选)7. 安装8. 清理(可选)9.注意事项 第二部分:链接命令硬链接(Hard Link&#xf…...

科研绘图系列:R语言绘制线性回归连线图(line chart)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图保存图片系统信息参考介绍 科研绘图系列:R语言绘制线性回归连线图(line chart) 加载R包 library(tidyverse) library(ggthemes) libra…...

将ollama迁移到其他盘(eg:F盘)

文章目录 1.迁移ollama的安装目录2.修改环境变量3.验证 背景:在windows操作系统中进行操作 相关阅读 :本地部署deepseek模型步骤 1.迁移ollama的安装目录 因为ollama默认安装在C盘,所以只能安装好之后再进行手动迁移位置。 # 1.迁移Ollama可…...

Oracle 创建用户和表空间

Oracle 创建用户和表空间 使用sys 账户登录 建立临时表空间 --建立临时表空间 CREATE TEMPORARY TABLESPACE TEMP_POS --创建名为TEMP_POS的临时表空间 TEMPFILE /oracle/oradata/POS/TEMP_POS.DBF -- 临时文件 SIZE 50M -- 其初始大小为50M AUTOEXTEND ON -- 支持…...

cursor ide配置远程ssh qt c++开发环境过程记录

cursor是啥就不介绍了,好像是目前最好用的ai ide,下面主要是配置远程ssh连接linux机器进行qt5 c程序运行的配置过程记录。 一、c_cpp_properties.json 在项目根目录的.vscode目录里面新建c_cpp_properties.json文件,根据你的实际情况配置该文…...

yolov5错误更改与相关参数详解(train.py)

1.错误更改 main中相关参数 if __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(--weights, typestr, default, helpinitial weights path)parser.add_argument(--cfg, typestr, defaultmodels/yolov5s.yaml, helpmodel.yaml path)parser.add_arg…...

Python设计模式 - 组合模式

定义 组合模式(Composite Pattern) 是一种结构型设计模式,主要意图是将对象组织成树形结构以表示"部分-整体"的层次结构。这种模式能够使客户端统一对待单个对象和组合对象,从而简化了客户端代码。 组合模式有透明组合…...

css粘性定位超出指定宽度失效问题

展示效果 解决办法&#xff1a;外层容器添加display:grid即可 完整代码 <template><div class"box"><div class"line" v-for"items in 10"><div class"item" v-for"item in 8">drgg</div>&…...

Windows 程序设计6:错误码的查看

文章目录 前言一、说明二、使用GetLastError找到错误的原因三、使用错误码的宏总结 前言 Windows 程序设计6&#xff1a;错误码的查看。 一、说明 有时写的代码单纯看是没有问题的&#xff0c;但是执行起来就会崩溃。因此要养成判断函数执行是否成功的习惯&#xff0c;除非这…...

doris: CSV导入数据

本文介绍如何在 Doris 中导入 CSV 格式的数据文件。Doris 支持灵活的 CSV 格式配置&#xff0c;包括自定义分隔符、字段包围符等&#xff0c;并提供多种导入方式以满足不同场景的数据导入需求。 导入方式​ Doris 支持以下方式导入 CSV 格式数据&#xff1a; Stream LoadBro…...

FastStone Image Viewer图像处理软件安装步骤(百度网盘链接)

软件简介&#xff1a;一款小巧便捷的添加水印、特效、图片处理软件&#xff0c;让使用者可以通过它的操作界面来浏览图片&#xff0c;且还支持了幻灯播放的功能&#xff0c;让使用者能够轻松的浏览目录中的所有图片。 网盘链接&#xff1a;https://pan.baidu.com/s/1Zvrx7fXwb6…...

Kafka 深入服务端 — 时间轮

Kafka中存在大量的延迟操作&#xff0c;比如延时生产、延时拉取和延时删除等。Kafka基于时间轮概念自定义实现了一个用于延时功能的定时器&#xff0c;来完成这些延迟操作。 1 时间轮 Kafka没有使用基于JDK自带的Timer或DelayQueue来实现延迟功能&#xff0c;因为它们的插入和…...

网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。

一、前言 我从24年11月份开始学习网络爬虫应用开发&#xff0c;经过2个来月的努力&#xff0c;于1月下旬完成了开发一款网络爬虫软件的学习目标。这里对本次学习及应用开发进行一下回顾总结。 前几天我已经发了一篇日志&#xff08;网络爬虫学习&#xff1a;应用selenium从搜…...

【go语言】结构体

一、type 关键字的用法 在 go 语言中&#xff0c;type 关键字用于定义新的类型&#xff0c;他可以用来定义基础类型、结构体类型、接口类型、函数类型等。通过 type 关键字&#xff0c;我们可以为现有类型创建新的类型别名或者自定义新的类型。 1.1 类型别名 使用 type 可以为…...

Spring Boot是什么及其优点

简介 Spring Boot是基于Spring框架开发的全新框架&#xff0c;其设计目的是简化Spring应用的初始化搭建和开发过程。 Spring Boot整合了许多框架和第三方库配置&#xff0c;几乎可以达到“开箱即用”。 优点 可快速构建独立的Spring应用。 直接嵌入Tomcat、Jetty和Underto…...

谷氨酸:大脑功能的多面手

标题&#xff1a;谷氨酸&#xff1a;大脑功能的多面手 文章信息摘要&#xff1a; 谷氨酸是大脑中最主要的兴奋性神经递质&#xff0c;参与了90%以上的神经元激活&#xff0c;在蛋白质合成、味觉&#xff08;鲜味&#xff09;以及神经可塑性中发挥重要作用。它与GABA、多巴胺等…...

SpringCloudGateWay和Sentinel结合做黑白名单来源控制

假设我们的分布式项目&#xff0c;admin是8087&#xff0c;gateway是8088&#xff0c;consumer是8086 我们一般的思路是我们的请求必须经过我们的网关8088然后网关转发到我们的分布式项目&#xff0c;那我要是没有处理我们绕过网关直接访问项目8087和8086不也是可以&#xff1…...

HTML新春烟花

系列文章 序号目录1HTML满屏跳动的爱心&#xff08;可写字&#xff09;2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐5HTML蓝色爱心射线6HTML跳动的爱心&#xff08;简易版&#xff09;7HTML粒子爱心8HTML蓝色动态爱心9HTML跳动的爱心&#xff08;双心版&#xff09;10…...

【Elasticsearch】中数据流需要配置索引模板吗?

是的&#xff0c;数据流需要配置索引模板。在Elasticsearch中&#xff0c;数据流&#xff08;Data Streams&#xff09;是一种用于处理时间序列数据的高级结构&#xff0c;它背后由多个隐藏的索引组成&#xff0c;这些索引被称为后备索引&#xff08;Backing Indices&#xff0…...

Git进阶之旅:Git 配置信息 Config

Git 配置级别&#xff1a; 仓库级别&#xff1a;local [ 优先级最高 ]用户级别&#xff1a;global [ 优先级次之 ]系统级别&#xff1a;system [ 优先级最低 ] 配置文件位置&#xff1a; git 仓库级别对应的配置文件是当前仓库下的 .git/configgit 用户级别对应的配置文件时用…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...

stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)

这是系统中断服务程序的默认处理汇编函数&#xff0c;如果我们没有定义实现某个中断函数&#xff0c;那么当stm32产生了该中断时&#xff0c;就会默认跑这里来了&#xff0c;所以我们打开了什么中断&#xff0c;一定要记得实现对应的系统中断函数&#xff0c;否则会进来一直循环…...

Qt的学习(二)

1. 创建Hello Word 两种方式&#xff0c;实现helloworld&#xff1a; 1.通过图形化的方式&#xff0c;在界面上创建出一个控件&#xff0c;显示helloworld 2.通过纯代码的方式&#xff0c;通过编写代码&#xff0c;在界面上创建控件&#xff0c; 显示hello world&#xff1b; …...

WEB3全栈开发——面试专业技能点P8DevOps / 区块链部署

一、Hardhat / Foundry 进行合约部署 概念介绍 Hardhat 和 Foundry 都是以太坊智能合约开发的工具套件&#xff0c;支持合约的编译、测试和部署。 它们允许开发者在本地或测试网络快速开发智能合约&#xff0c;并部署到链上&#xff08;测试网或主网&#xff09;。 部署过程…...

MySQL 数据库深度剖析:事务、SQL 优化、索引与 Buffer Pool

在当今数据驱动的时代&#xff0c;数据库作为数据存储与管理的核心&#xff0c;其性能与可靠性至关重要。MySQL 作为一款广泛使用的开源数据库&#xff0c;在众多应用场景中发挥着关键作用。在这篇博客中&#xff0c;我将围绕 MySQL 数据库的核心知识展开&#xff0c;涵盖事务及…...