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

Linux:生态与软件安装

文章目录

  • 前言
  • 一、Linux下安装软件的方案
  • 二、包管理器是什么?
  • 三、生态问题相关的理解
    • 1. 什么操作系统是好的操作系统?
    • 2. 什么是生态?
    • 3. 软件包是谁写的?这些工程师为什么要写?钱的问题怎么解决?
  • 四、我的服务器怎么知道去哪里找软件包?
    • 1. Linux下提供了对应的配置文件
    • 2. 镜像源
    • 3. 镜像源更新
  • 五、软件包依赖问题
  • 六、软件的安装
    • 1. yum三板斧
    • 2. 好玩的软件
  • 总结


前言

今天来讲Linux生态与软件安装方面的知识~🫡🫡🫡

在这里插入图片描述


一、Linux下安装软件的方案

Linux下安装一款软件有哪些方法呢?

  1. 源代码安装

自己写对应的源代码,等等,安装到Linux服务器下。

  1. rpm包安装

RPM(Red Hat Package Manager)安装方式一般适用于安装单个软件包,而不会自动解决依赖问题。如果软件包依赖其他库或软件,手动下载并安装所有依赖包是必要的。相比之下,包管理器(如 yum 和 apt)则能自动解决依赖问题,并下载、安装所需的依赖项,这使得管理软件更为便捷。

  1. 包管理器安装——yum/apt

通过包管理器安装,例如 yum(CentOS/Red Hat)或 apt(Ubuntu/Debian)。这些工具自动处理依赖关系,例如 yum install package 或 apt install package。


二、包管理器是什么?

包管理器是一种用于管理软件包的工具,能够简化软件的安装、更新、卸载等操作。包管理器可以自动处理依赖关系,确保所需的所有依赖项都能一并安装,避免软件冲突或缺失。包管理器通常连接到软件仓库,从网络中下载软件包。

用通俗易懂的话来说:包管理器就像软件商店,他把我们要的东西都打包好了。

在这里插入图片描述
在这里插入图片描述


三、生态问题相关的理解

1. 什么操作系统是好的操作系统?

答:生态好!!!


2. 什么是生态?

操作系统的生态是指围绕某个操作系统所形成的软件、工具、开发者和用户社区。不同的 Linux 操作系统如 CentOS、Ubuntu 以及编辑工具 Kile 都有各自独特的生态系统,吸引了不同的用户群体。

  1. CentOS

    • 生态:CentOS 是一个面向企业的开源 Linux 操作系统,与 Red Hat Enterprise Linux (RHEL) 兼容。CentOS 提供稳定、可靠的环境,更新周期较长。
    • 选择人群:企业用户、服务器管理员以及需要高稳定性和长期支持的用户,适合生产环境中的服务器部署和企业级应用。
  2. Ubuntu

    • 生态:Ubuntu 基于 Debian,拥有庞大的社区支持和丰富的软件库。它更新频繁,用户界面友好,是桌面端的热门 Linux 发行版。
    • 选择人群:个人用户、开发者以及 Linux 初学者。因其使用便捷和社区支持广泛,适合日常办公、开发和学习 Linux。
  3. Kile

    • 生态:Kile 是基于 KDE 桌面环境的 LaTeX 编辑器,专为 Linux 系统设计,提供了丰富的 LaTeX 文档编辑和排版功能。
    • 选择人群:科研人员、学生和学术工作者。Kile 为需要高质量文档排版的用户提供了强大的编辑工具,在 Ubuntu 等 Linux 发行版中使用广泛。

生态都是对于用户群体来说的,因为有不同的人,才有不同的生态:
在这里插入图片描述


3. 软件包是谁写的?这些工程师为什么要写?钱的问题怎么解决?

开发的人操作系统的人,以及其他工程师。前者为了维护自己操作系统的生态,后者公司产生关联给钱。

软件包通常由开发者或团队创建,这些开发者可以是独立的个人、开源社区、非营利组织,或商业公司。开发这些软件包的原因和资金来源因项目性质和组织结构而异,通常涉及以下几种情况:

  1. 开源社区开发者

    • 动机:许多开源软件包是由志愿开发者或非营利组织创建的,他们的动机可能是兴趣、技术挑战、为社区做贡献,或者是在特定领域中遇到问题并开发解决方案。开源开发者通常乐于分享代码,并希望其他人能够改进或扩展软件。
    • 资金来源:这些项目大多依赖捐赠、基金会资助(如 Linux 基金会、Mozilla 基金会等),以及公司赞助。公司可能会出资以促进项目的发展,因为这些软件往往有助于他们的业务,比如提升服务器性能或提供开发工具。
  2. 商业公司开发

    • 动机:许多公司开发和发布软件包是为了支持其业务模式或提升其在某个领域的影响力。例如,Ubuntu 背后的 Canonical 公司免费提供 Ubuntu,但提供企业级支持服务和定制开发,从而盈利。通过软件包,公司不仅能丰富 Linux 生态,还能巩固其市场地位。
    • 资金来源:公司通常通过直接销售、订阅服务或定制解决方案来获取收入,从而支持软件包的开发和维护。此外,他们可能通过培训、认证课程等衍生服务获得收益。
  3. 操作系统维护者

    • 动机:操作系统的开发者(如 Red Hat、Canonical)会积极维护自己的生态系统,通过提供丰富的软件包来吸引更多用户,并确保操作系统的完整性和兼容性。他们开发和维护包管理工具(如 apt、yum)并提供软件仓库,以便用户轻松安装软件。
    • 资金来源:这些公司通常通过提供企业支持、咨询服务、专业认证和托管服务等手段来获取收益。比如,Red Hat 通过支持和服务订阅盈利,而 CentOS 则是其社区版,以免费支持生态的用户基础。
  4. 独立工程师或爱好者

    • 动机:一些工程师出于兴趣、学习、职业发展等原因,开发和发布软件包。他们可能在开源社区分享项目,并在项目成熟后获得用户支持。独立开发者有时也借助开源项目积累声誉,从而获得工作机会或业务合作。
    • 资金来源:资金支持可能来自众筹(如 Patreon、GitHub Sponsors)、社区捐赠,或通过发布专业版收费版本获得收益。

在这里插入图片描述


四、我的服务器怎么知道去哪里找软件包?

1. Linux下提供了对应的配置文件

Linux 系统会在特定的配置文件中指定软件包源的位置,例如 /etc/apt/sources.list(在 Ubuntu/Debian 中)或 /etc/yum.repos.d/(在 CentOS/Red Hat 中)。这些文件包含了软件仓库的 URL 地址,系统根据这些地址下载和更新软件包。
在这里插入图片描述


2. 镜像源

国内因为一些众所周知的原因,我们知道存在国外的软件我们不能直接下载,但是呢,国内的一些工程师就会想办法搞出来一个镜像源。

在国内,由于访问国外服务器的限制,直接从国外下载软件可能会有困难。因此,国内的一些公司和开发者建立了镜像源,将国外的软件仓库同步到国内服务器上。这些镜像源大大加速了国内用户下载和更新软件包的速度。例如,清华大学、中科大等机构提供了 Ubuntu 和 CentOS 的镜像源,方便国内用户的快速访问。

在这里插入图片描述


3. 镜像源更新

镜像源是对官方软件仓库的副本,定期同步官方仓库以保证最新的软件版本和安全更新。国内镜像源通过自动更新脚本定期检查并同步官方仓库的内容,从而提供快速、稳定的下载服务。


更换镜像源

  1. Ubuntu/Debian 系列

    • 打开并编辑 /etc/apt/sources.list 文件:
      sudo nano /etc/apt/sources.list
      
    • 将默认源地址替换为国内镜像源地址,然后保存并关闭文件。
    • 更新镜像列表:
      sudo apt update
      
  2. CentOS/Red Hat 系列

    • /etc/yum.repos.d/ 目录下,有不同的 .repo 文件,每个文件对应不同的仓库源。
    • 编辑对应的 .repo 文件,将原有 URL 替换为国内镜像源的地址。
    • 更新仓库列表:
      sudo yum makecache
      

国内常用镜像源网址

  1. 清华大学 TUNA 镜像源
  • 网址:https://mirrors.tuna.tsinghua.edu.cn
  • 支持的系统:Ubuntu、Debian、CentOS、Fedora、Arch Linux 等
  • Ubuntu 源配置示例
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    
  1. 中国科学技术大学(USTC)镜像源
  • 网址:https://mirrors.ustc.edu.cn
  • 支持的系统:Ubuntu、Debian、CentOS、Fedora、Arch Linux、Gentoo 等
  • CentOS 源配置示例
    [base]
    name=CentOS-$releasever - Base - USTC
    baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/os/$basearch/
    
  1. 阿里云镜像源

    • 网址:https://developer.aliyun.com/mirror
    • 支持的系统:Ubuntu、Debian、CentOS、Fedora、Arch Linux 等
    • Ubuntu 源配置示例
      deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
      deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
      
  2. 腾讯云镜像源

    • 网址:https://mirrors.cloud.tencent.com
    • 支持的系统:Ubuntu、Debian、CentOS、Fedora、Arch Linux 等
    • Debian 源配置示例
      deb https://mirrors.cloud.tencent.com/debian/ buster main contrib non-free
      deb https://mirrors.cloud.tencent.com/debian/ buster-updates main contrib non-free
      

五、软件包依赖问题

软件包依赖问题是指在安装或更新一个软件包时,系统发现该包需要其他未安装的包才能正常运行。这个问题在 Linux 系统中很常见,因为许多软件包之间存在依赖关系。

依赖问题的主要类型

  1. 直接依赖:软件 A 需要软件 B 才能运行。例如,一个视频播放器需要特定的解码器才能播放视频文件。
  2. 递归依赖:软件 A 依赖软件 B,软件 B 又依赖软件 C,这样形成链条式的依赖。
  3. 版本冲突:软件 A 依赖软件 B 的特定版本,但该版本可能与系统中已安装的其他软件包不兼容。
  4. 循环依赖:两个或多个软件包相互依赖,形成死循环。例如,软件 A 依赖 B,B 又依赖 A。

解决依赖问题的工具

现代包管理工具(如 aptyumdnf)会自动解决大多数依赖问题,自动下载并安装所需的依赖包。然而,某些情况下可能需要手动干预,例如指定版本或安装额外的库文件来解决冲突。

依赖问题在一定程度上促进了容器技术(如 Docker)的发展,通过隔离和打包依赖,减少了不同环境下的依赖冲突。

在这里插入图片描述


六、软件的安装

Linux下的软件,以root身份安装了,其他都可以以other的身份运行!

1. yum三板斧

  • 查看有什么软件
    sudo yum list | grep XXX
    

在这里插入图片描述

  • 安装软件

    sudo yum install -y <package_name>
    

    这条命令会下载并安装指定的软件包及其所有依赖。
    在这里插入图片描述

  • 更新软件

    sudo yum update <package_name>
    

    用于更新系统中已安装的软件包。如果不指定包名,使用 sudo yum update 会更新所有可更新的软件包。

  • 删除软件

    sudo yum remove -y <package_name>
    

    这条命令会卸载指定的软件包及其依赖。


2. 好玩的软件

分享一下优秀的有趣小软件:
~~戳我🤩🤩🤩

sl->小火车
在这里插入图片描述

cowsay->小样🐏
在这里插入图片描述


总结

操作系统生态包括开发者、应用程序、用户和维护机构,通过相互依赖形成一个健康的软件环境,确保系统的稳定性和安全性。Yum 包管理器作为基于 RPM 的工具,简化了软件的安装和更新,自动处理依赖关系,并通过命令行界面方便用户管理软件源,从而促进了 Linux 系统的有效管理和应用。

到这里就结束啦!创作不易,感谢大家的支持🥰🥰🥰

在这里插入图片描述

相关文章:

Linux:生态与软件安装

文章目录 前言一、Linux下安装软件的方案二、包管理器是什么&#xff1f;三、生态问题相关的理解1. 什么操作系统是好的操作系统&#xff1f;2. 什么是生态&#xff1f;3. 软件包是谁写的&#xff1f;这些工程师为什么要写&#xff1f;钱的问题怎么解决? 四、我的服务器怎么知…...

R 语言与其他编程语言的区别

R 语言与其他编程语言的区别 R 语言作为一种专门用于统计计算和图形的编程语言&#xff0c;与其他编程语言相比有一些独特的特点和区别。本文将详细介绍这些区别&#xff0c;帮助你更好地理解 R 语言的优势和适用场景。 1. 专为统计和数据分析设计 统计功能 内置统计函数&…...

RC低通滤波器Bode图分析(传递函数零极点)

RC低通滤波器 我们使得R1K&#xff0c;C1uF&#xff1b;电容C的阻抗为Xc&#xff1b; 传递函数 H ( s ) u o u i X C X C R 1 s C 1 s C R 1 1 s R C &#xff08;其中 s j ω &#xff09; H(s)\frac{u_{o} }{u_{i} } \frac{X_{C} }{X_{C}R} \frac{\frac{1}{sC} }{\…...

基于深度学习的网络入侵检测

基于深度学习的网络入侵检测是一种利用深度学习技术对网络流量进行实时监测与分析的方法&#xff0c;旨在识别并防范网络攻击和恶意活动。随着网络环境日益复杂&#xff0c;传统的入侵检测系统&#xff08;IDS&#xff09;在面对不断变化的攻击模式时&#xff0c;往往难以保持高…...

《构建一个具备从后端数据库获取数据并再前端显示的内容页面:前后端实现解析》

一、前端页面&#xff1a;布局与功能 1. 页面结构 我们先来看前端页面的 HTML 结构&#xff0c;它主要由以下几个部分组成&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewp…...

Rust 力扣 - 59. 螺旋矩阵 II

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 使用一个全局变量current记录当前遍历到的元素的值 我们只需要一圈一圈的从外向内遍历矩阵&#xff0c;每一圈遍历顺序为上边、右边、下边、左边&#xff0c;每遍历完一个元素后current 我们需要注意的是如果上…...

2.4w字 —TS入门教程

目录 1. 什么是TS 2. TS基本使用 3 TS基础语法 3.1 基础类型约束 3.11 string&#xff0c;number&#xff0c;boolean&#xff0c; null和undefined 3.12 any 3.13 unknown 3.14 void 3.15 数组 3.16 对象 3.2 函数的约束 3.21 普通写法 3.22 函数表达式 3.22 可选…...

java: 未结束的字符文字 报错及解决:将编码全部改为UTF-8或者GBK

报错&#xff1a; 解决&#xff1a; 将编码都改成UTF-8或者GBK&#xff1a;...

Android平台RTSP转RTMP推送之采集麦克风音频转发

技术背景 RTSP转RTMP推送&#xff0c;好多开发者第一想到的是采用ffmpeg命令行的形式&#xff0c;如果对ffmpeg比较熟&#xff0c;而且产品不要额外的定制和更高阶的要求&#xff0c;未尝不可&#xff0c;如果对产品稳定性、时延、断网重连等有更高的技术诉求&#xff0c;比较…...

认证鉴权框架之—sa-token

一、概述 Satoken 是一个 Java 实现的权限认证框架&#xff0c;它主要用于 Web 应用程序的权限控制。Satoken 提供了丰富的功能来简化权限管理的过程&#xff0c;使得开发者可以更加专注于业务逻辑的开发。 二、逻辑流程 1、登录认证 &#xff08;1&#xff09;、创建token …...

Spring源码(十一):Spring MVC之DispatchServlet

本篇重点在于分析Spring MVC与Servlet标准的整合&#xff0c;下节将详细讨论Spring MVC的启动/加载流程、处理请求的具体流程。 一、介绍 Spring框架提供了构建Web应用程序的全功能MVC模块。通过策略接口 &#xff0c;Spring框架是高度可配置的&#xff0c;而且支持多种视图技…...

gitbash简单操作

https://blog.csdn.net/qq_42363495/article/details/104878170 工作区(空间)--暂存区--本地仓库--远程仓库 方法一&#xff1a;创建一个新的分支master&#xff0c;且远程库里没有该分支 只要将.gitignore文件放在文件夹下就可以&#xff0c;.gitignore是文本文档形式的文件…...

pnpm install安装element-plus的版本跟package.json指定的版本不一样

pnpm安装的版本不同于package.json中指定的版本可能是由于以下几种情况导致的&#xff1a; 依赖项冲突&#xff1a;当项目依赖的不同模块或库之间存在版本冲突时&#xff0c;pnpm可能会安装与package.json中指定的版本不同的版本。这可能是因为其他依赖项指定了不同的版本&…...

Java线程池的核心内容详解

文章内容已经收录在《面试进阶之路》&#xff0c;从原理出发&#xff0c;直击面试难点&#xff0c;实现更高维度的降维打击&#xff01; 目录 文章目录 目录Java线程池的核心内容详解线程池的优势什么场景下要用到线程池呢&#xff1f;线程池中重要的参数【掌握】新加入一个任…...

学习笔记——三小时玩转JQuery

也可以使用在线版&#xff0c;不过在线版需要有网络&#xff0c;网不好的情况下加载也不好 取值的时候也是只会取到有样式的纯文本&#xff0c;不会取到标签&#xff0c;会取到标签效果 prepend和append这两个方法用的比较多&#xff0c;before和affter用的比较少 想要把代码写…...

word试题转excel(最简单的办法,无格式要求)

分享早下班的终极秘诀~ 今天本来是个愉快的周五&#xff0c;心里想着周末的聚会和各种安排&#xff0c;然而突然一个加急任务砸了过来——要求在下周一提交一份精细整理的Excel表格&#xff01; 打开Word文件一看&#xff0c;成堆的试题内容需要整理到Excel里。看着满屏的题目…...

基于web的中小学成绩管理系统的设计与实现

目录 第一章 研究背景与意义 1.1 研究背景 1.2 研究意义 1.3 研究目的 第二章 关于系统的设计 2.1系统总体架构设计 2.2功能模块设计 2.3数据存储与管理 第三章 系统功能介绍 3.1成绩录入及发布 3.2班级管理和学生管理 3.3成绩分析结果展示 3.4用户反馈与改进 …...

Conmi的正确答案——在Kibana中进入Elasticsearch的索引管理页面

Elasticsearch版本&#xff1a;7.17.25 Kibana版本&#xff1a;7.17.25 注&#xff1a;索引即类似mysql的表。 0、进入首页 1、未创建任何“索引模式”时&#xff1a; 1.1、点击左边的三横菜单&#xff1b; 1.2、点击“Discover”&#xff0c;进入“发现”页面&#xff1b; 2…...

【JavaEE】【多线程】进阶知识

目录 一、常见的锁策略1.1 悲观锁 vs 乐观锁1.2 重量级锁 vs 轻量级锁1.3 挂起等待锁 vs 自旋锁1.4 普通互斥锁 vs 读写锁1.5 可重入锁 vs 不可重入锁1.6 不公平锁 vs 公平锁 二、synchronized特性2.1 synchronized的锁策略2.2 synchronized加锁过程2.3 其它优化措施 三、CAS3.…...

LeetCode100之三数之和(15)--Java

1.问题描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意 答案中不可以包含重复的三元组 示例1 输入&…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...