《Linux 简易速速上手小册》第4章: 包管理与软件安装(2024 最新版)

news2024/10/6 22:18:45

在这里插入图片描述

文章目录

  • 4.1 包管理基础
    • 4.1.1 重点基础知识
    • 4.1.2 重点案例:在 Ubuntu 上安装和管理软件
    • 4.1.3 拓展案例 1:添加软件仓库
    • 4.1.4 拓展案例 2:回滚软件到旧版本
  • 4.2 使用 APT 与 YUM
    • 4.2.1 重点基础知识
    • 4.2.2 重点案例:在 Ubuntu 上配置 LAMP 服务器
    • 4.2.3 拓展案例 1:在 CentOS 上配置开发环境
    • 4.2.4 拓展案例 2:使用 APT 自动清理不再需要的依赖
  • 4.3 从源代码编译安装
    • 4.3.1 重点基础知识
    • 4.3.2 重点案例:编译安装 Nginx
    • 4.3.3 拓展案例 1:从源代码安装 Python 3.8
    • 4.3.4 为软件配置特定选项

4.1 包管理基础

在 Linux 的海洋中航行,包管理器是你的罗盘和船帆,引导你在软件的海洋中轻松航行。无论是安装新软件、更新现有软件,还是管理系统上的软件包,包管理器都能让这一切变得轻而易举。

4.1.1 重点基础知识

  • 什么是包管理器? 包管理器是一个允许用户自动化安装、升级、配置和移除软件包的系统工具。它处理依赖关系,确保软件包之间不会发生冲突,并维护软件包的版本信息。
  • 常见的包管理器:
    • APT (Advanced Package Tool): 用于 Debian 及其衍生系统(如 Ubuntu)的包管理器。
    • YUM (Yellowdog Updater Modified)/DNF: 用于 Fedora、CentOS 和 RHEL 系统的包管理器。DNF 是 YUM 的下一代版本,提供了更好的性能和额外的功能。
    • Pacman: Arch Linux 的包管理器,以其速度和简洁性著称。
  • 软件仓库: 软件仓库是存储软件包的服务器。包管理器从这些仓库下载并安装软件包。用户可以添加或删除软件仓库,以访问更多的软件包或不同版本的软件。

4.1.2 重点案例:在 Ubuntu 上安装和管理软件

假设你是一个 Ubuntu 用户,需要安装、更新和删除软件包。

  1. 安装软件:
    使用 APT 安装软件非常简单。比如,要安装 VLC 媒体播放器:

    sudo apt-get update
    sudo apt-get install vlc
    

    第一条命令更新了软件包列表,确保你安装的是最新版本。

  2. 更新软件:
    要更新系统上所有的软件包,你可以运行:

    sudo apt-get upgrade
    

    这会根据最新的软件包列表升级所有已安装的软件包。

  3. 删除软件:
    如果你不再需要 VLC 媒体播放器,可以用下面的命令卸载它:

    sudo apt-get remove vlc
    

4.1.3 拓展案例 1:添加软件仓库

在某些情况下,你可能需要安装不在默认软件仓库中的软件。例如,要添加一个第三方仓库并从中安装软件,你可以使用 add-apt-repository 命令:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

4.1.4 拓展案例 2:回滚软件到旧版本

如果新版本的软件包引起了问题,你可能想要回滚到旧版本。这可以通过安装特定版本的软件包来实现:

sudo apt-get install vlc=2.2.1

这条命令会安装 VLC 媒体播放器的 2.2.1 版本。

通过掌握包管理器的使用,你就能轻松地管理 Linux 系统上的软件包,无论是安装新工具,更新应用,还是维护系统的整洁,都不再是难题。包管理器让软件管理变得既简单又高效,释放了你的时间和精力,让你能够专注于更重要的任务。

在这里插入图片描述


4.2 使用 APT 与 YUM

在 Linux 的世界里,APT 和 YUM 是两个非常强大的工具,它们让软件的安装、更新、卸载和管理变得轻而易举。了解如何有效地使用这些工具,可以大大提高你在 Linux 系统上工作的效率和愉悦度。

4.2.1 重点基础知识

  • APT (Advanced Package Tool): APT 是 Debian 及其派生系统(如 Ubuntu)的包管理器。它允许从远程仓库安装、更新、卸载软件包,并自动处理软件依赖。
  • YUM (Yellowdog Updater Modified): YUM 是基于 RPM 的系统(如 Fedora、CentOS)的包管理器。它与 APT 类似,也可以自动解决依赖问题。
  • DNF: DNF 是 YUM 的后继者,提供了更好的性能和新特性。从 Fedora 22 开始,DNF 开始取代 YUM。
  • 常用命令:
    • APT:
      • sudo apt-get update: 更新软件包列表。
      • sudo apt-get install <package>: 安装软件包。
      • sudo apt-get upgrade: 升级所有已安装的软件包。
      • sudo apt-get remove <package>: 删除软件包。
    • YUM/DNF:
      • sudo yum check-updatesudo dnf check-update: 检查可更新的软件包。
      • sudo yum install <package>sudo dnf install <package>: 安装软件包。
      • sudo yum updatesudo dnf upgrade: 更新所有软件包。
      • sudo yum remove <package>sudo dnf remove <package>: 删除软件包。

4.2.2 重点案例:在 Ubuntu 上配置 LAMP 服务器

LAMP 代表 Linux、Apache、MySQL/MariaDB、PHP/Python/Perl,是一种流行的网站服务器配置。

  1. 更新软件包列表:

    sudo apt-get update
    
  2. 安装 Apache:

    sudo apt-get install apache2
    
  3. 安装 MySQL:

    sudo apt-get install mysql-server
    
  4. 安装 PHP:

    sudo apt-get install php libapache2-mod-php php-mysql
    
  5. 重启 Apache 服务:

    sudo systemctl restart apache2
    

4.2.3 拓展案例 1:在 CentOS 上配置开发环境

假设你需要在 CentOS 系统上配置一个 Python 开发环境。

  1. 安装 Python:

    sudo dnf install python3
    
  2. 安装 pip:

    sudo dnf install python3-pip
    
  3. 安装虚拟环境工具:

    sudo pip3 install virtualenv
    

4.2.4 拓展案例 2:使用 APT 自动清理不再需要的依赖

随着时间的推移,系统上可能会堆积很多不再需要的依赖包。APT 提供了一种简单的方式来清理这些不再需要的包。

sudo apt-get autoremove

通过熟悉和使用 APT 和 YUM/DNF,你可以有效地管理你的 Linux 系统,无论是搭建服务器,配置开发环境,还是简单地保持系统的整洁和最新状态。这些包管理器是每个 Linux 用户强大的工具,掌握它们将使你在 Linux 的世界里如鱼得水。

在这里插入图片描述


4.3 从源代码编译安装

有时候,在 Linux 上,你可能会遇到一些不在包管理器仓库中的软件,或者你需要安装软件的最新版本,这时候从源代码编译安装就显得尤为重要。这个过程就像是从零开始搭建一栋房子,需要更多的手工劳动,但最终你会得到一个完全按照你的需求定制的产品。

4.3.1 重点基础知识

  • 准备编译环境: 在开始编译之前,你需要确保系统上安装了基本的编译工具,如 gccmakeautoconf 等。
  • 下载源代码: 通常,源代码可以从软件的官方网站或 GitHub 仓库下载。它们通常以 .tar.gz.zip 形式打包。
  • 解压源代码: 使用 tar -xzf sourcecode.tar.gzunzip sourcecode.zip 解压下载的源代码包。
  • 配置编译选项: 运行 ./configure 命令来检查系统环境,并设置编译选项。你可以通过 ./configure --help 查看所有可用的配置选项。
  • 编译: 使用 make 命令开始编译过程。这个过程可能会花费一些时间,具体取决于软件的大小和系统的性能。
  • 安装: 编译完成后,使用 sudo make install 命令将软件安装到系统中。

4.3.2 重点案例:编译安装 Nginx

假设你需要安装 Nginx 的最新版本,但你的 Linux 发行版仓库中的版本不是最新的。

  1. 安装编译依赖:

    sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
    
  2. 下载 Nginx 源代码:

    wget http://nginx.org/download/nginx-1.19.0.tar.gz
    
  3. 解压源代码:

    tar -xzf nginx-1.19.0.tar.gz
    cd nginx-1.19.0
    
  4. 配置编译选项:

    ./configure --with-http_ssl_module
    
  5. 编译并安装:

    make
    sudo make install
    

4.3.3 拓展案例 1:从源代码安装 Python 3.8

如果你需要安装 Python 的一个特定版本,而你的发行版仓库中没有提供,你可以从源代码编译安装。

首先,下载 Python 3.8 的源代码,然后按照上述步骤解压、配置、编译并安装。

4.3.4 为软件配置特定选项

有时,你可能需要为软件启用或禁用特定的功能。比如,编译安装 Vim 时启用 Python 支持。

在运行 ./configure 命令时,你可以添加特定的选项,如 --enable-pythoninterp,以启用 Python 支持。

通过从源代码编译安装软件,你不仅可以确保得到软件的最新版本,还可以根据自己的需要定制软件的功能。虽然这个过程比使用包管理器安装软件更复杂,但它提供了更高的灵活性和控制。掌握了这项技能,你就能在 Linux 系统上自由地安装和管理各种软件了。

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

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

相关文章

Python||数据分析之pyecharts 绘图(词云、气泡)

1. echarts 和 Pyecharts 简介 1.1echarts 简介: • echarts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。 • echarts 遵循 Apache-2.0 开源协议,免费商用。 • ECharts 最初由百度团队开源,并于 2018 年初捐赠给 Apache 基金会,成为 AS…

第9讲用户信息修改实现

用户信息修改实现 后端修改用户昵称&#xff1a; /*** 更新用户昵称* param wxUserInfo* param token* return*/ RequestMapping("/updateNickName") public R updateNickName(RequestBody WxUserInfo wxUserInfo,RequestHeader String token){if(StringUtil.isNot…

HTTP协议-请求Request

前言&#xff1a; 序列&#xff1a;HTTP - 002 1.请求格式 1.1标椎格式 HTTP请求是字符串的格式传输&#xff0c;具体包含以下四部分&#xff1a; 首行&#xff1a;[方法][url][版本号]&#xff0c;分别使用空格分隔&#xff1b;请求头&#xff08;Header&#xff09;&#…

Verilog刷题笔记30

题目&#xff1a; You are provided with a BCD one-digit adder named bcd_fadd that adds two BCD digits and carry-in, and produces a sum and carry-out. 解题&#xff1a; module top_module( input [399:0] a, b,input cin,output cout,output [399:0] sum );reg [99…

【程序设计竞赛】竞赛中的细节优化

必须强调下&#xff0c;以下的任意一种优化&#xff0c;都应该是在本身采用的算法没有任何问题情况下的“锦上添花”&#xff0c;而不是“雪中送炭”。 如果下面的说法存在误导&#xff0c;请专业大佬评论指正 读写优化 C读写优化——解除流绑定 在ACM里&#xff0c;经常出现…

GO 的 Web 开发系列(五)—— 使用 Swagger 生成一份好看的接口文档

经过前面的文章&#xff0c;已经完成了 Web 系统基础功能的搭建&#xff0c;也实现了 API 接口、HTML 模板渲染等功能。接下来要做的就是使用 Swagger 工具&#xff0c;为这些 Api 接口生成一份好看的接口文档。 一、写注释 注释是 Swagger 的灵魂&#xff0c;Swagger 是通过…

Microsoft OneNote 图片文字提取

Microsoft OneNote 图片文字提取 1. 文件 -> 新建 -> 我的电脑 -> 名称 -> 位置 -> 创建笔记本2. 插入图片​​​3. 复制图片中的文本References 1. 文件 -> 新建 -> 我的电脑 -> 名称 -> 位置 -> 创建笔记本 ​ 2. 插入图片 ​​​3. 复制图片…

Material Design

1.使用颜色 2. 处理文本 3.处理形状 ​​​​​​

书生·浦语大模型第五课作业

基础作业&#xff1a; 使用 LMDeploy 以本地对话、网页Gradio、API服务中的一种方式部署 InternLM-Chat-7B 模型&#xff0c;生成 300 字的小故事&#xff08;需截图&#xff09; 这里 /share/conda_envs 目录下的环境是官方未大家准备好的基础环境&#xff0c;因为该目录是共…

161基于matlab的快速谱峭度方法

基于matlab的快速谱峭度方法&#xff0c;选择信号峭度最大的频段进行滤波&#xff0c;对滤波好信号进行包络谱分析。输出快速谱峭度及包络谱结果。程序已调通&#xff0c;可直接运行。 161 信号处理 快速谱峭度 包络谱分析 (xiaohongshu.com)

正则表达式与正则可视化工具:解密文本处理的利器

正则表达式与正则可视化工具&#xff1a;解密文本处理的利器 引言 在计算机科学和软件开发领域&#xff0c;正则表达式是一种强大而灵活的文本处理工具。然而&#xff0c;对于初学者来说&#xff0c;正则表达式的语法和规则可能会显得晦涩难懂。为了帮助初学者更好地理解和学…

Linux第48步_编译正点原子的出厂Linux内核源码

编译正点原子的出厂 Linux 内核源码&#xff0c;为后面移植linux做准备。研究对象如下&#xff1a; 1)、linux内核镜像文件“uImage” 路径为“arch/arm/boot”&#xff1b; 2)、设备树文件“stm32mp157d-atk.dtb” 路径为“arch/arm/boot/dts” 3)、默认配置文件“stm32m…

nba2k24 韩旭面补

nba2k23-24 韩旭面补 nba2k23-nba2k24通用 韩旭面补 下载地址&#xff1a; https://www.changyouzuhao.cn/9605.html

监测Nginx访问日志502情况后并做相应动作

今天带大家写一个比较实用的脚本哈 原理&#xff1a; 假设服务器环境为lnmp&#xff0c;近期访问经常出现502现象&#xff0c;且502错误在重启php-fpm服务后消失&#xff0c;因此需要编写监控脚本&#xff0c;一旦出现502&#xff0c;则自动重启php-fpm服务 场景&#xff1a; 1…

代码随想录day20--二叉树的应用8

LeetCode669.修剪二叉搜索树 题目描述&#xff1a; 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即&#xff0c;如果没…

Tied Block Convolution: 具有共享较薄滤波器的更简洁、更出色的CNN

摘要 https://arxiv.org/pdf/2009.12021.pdf 卷积是卷积神经网络&#xff08;CNN&#xff09;的主要构建块。我们观察到&#xff0c;随着通道数的增加&#xff0c;优化后的CNN通常具有高度相关的滤波器&#xff0c;这降低了特征表示的表达力。我们提出了Tied Block Convolutio…

人工智能能产生情绪吗?

此图片来源于网络 一、人情绪的本质是什么&#xff1f; 人的情绪本质是一个复杂的现象&#xff0c;涉及到生理、心理和社会的多个层面。以下是关于情绪本质的几种观点&#xff1a; 情绪的本质是生命能量的表达。情绪被认为是生命能量的一种体现&#xff0c;通过情绪的体验和…

第四节 zookeeper集群与分布式锁

目录 1. Zookeeper集群操作 1.1 客户端操作zk集群 1.2 模拟集群异常操作 1.3 curate客户端连接zookeeper集群 2. Zookeeper实战案例 2.1 创建项目引入依赖 2.2 获取zk客户端对象 2.3 常用API 2.4 客户端向服务端写入数据流程 2.5 服务器动态上下线、客户端动态监听 2…

基于大语言模型的AI Agents

代理&#xff08;Agent&#xff09;指能自主感知环境并采取行动实现目标的智能体。基于大语言模型&#xff08;LLM&#xff09;的 AI Agent 利用 LLM 进行记忆检索、决策推理和行动顺序选择等&#xff0c;把Agent的智能程度提升到了新的高度。LLM驱动的Agent具体是怎么做的呢&a…

探索Redis特殊数据结构:Geospatial(地理位置)在实际中的应用

一、概述 Redis官方提供了多种数据类型&#xff0c;除了常见的String、Hash、List、Set、zSet之外&#xff0c;还包括Stream、Geospatial、Bitmaps、Bitfields、Probabilistic&#xff08;HyperLogLog、Bloom filter、Cuckoo filter、t-digest、Top-K、Count-min sketch、Confi…