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

在这里插入图片描述

文章目录

  • 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.mzph.cn/news/681104.shtml

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

相关文章

Kong 负载均衡

负载均衡是一种将API请求流量分发到多个上游服务的方法。负载均衡可以提高整个系统的响应速度&#xff0c;通过防止单个资源过载而减少故障。 在以下示例中&#xff0c;您将使用部署在两台不同服务器或上游目标上的应用程序。Kong网关需要在这两台服务器之间进行负载均衡&…

嵌入式Qt 计算器界面设计

一.计算器界面设计 计算机界面程序分析&#xff1a; 需要用到的组件&#xff1a; 界面设计&#xff1a; 界面设计实现&#xff1a; 实验1&#xff1a;计算器界面设计 #include <QtGui/QApplication> #include <QWidget> //主窗口 #include <QLineEdit> //文…

2024年2月5日-2月11日周报

论文阅读 1. 本周计划2. 完成情况2.1 论文摘要2.2 网络结构2.3 损失函数2.4 优化器2.5 代码2.5.1 代码结果2.5.2 代码大致流程 4. 总结及收获4. 下周计划 1. 本周计划 阅读论文《Data-Driven Seismic Waveform Inversion: A Study on the Robustness and Generalization》并实…

五.实战软件部署 1-3实战章节-前言MYSQL 5.7版本在centos系统安装MYSQL 8.0版本在centos系统安装

目录 五.实战软件部署 1-实战章节-前言 五.实战软件部署 2-MYSQL 5.7版本在centos系统安装 1-配置yum仓库 2-使用yum安装mysql 3-安装完成后&#xff0c;启动mysql并配置开机自启动 4-检查mysql的运行状态 --配置 1-获取mysql的初识密码 2-登录mysql数据库系统 3-修改…

限制资源使用

限制资源使用 您需要显示对服务器资源的访问来保护Web应用程序和应用程序数据不受未授权用户的访问。在Java EE Web应用程序中,您可以通过在应用服务器中创建用户和用户组来保护资源免受未经授权的访问。您可以为应用程序定义角色并在部署过程中将角色分配给用户。 1. 创建授权…

2024.2.9

作业1 请使用递归实现n&#xff01; #include<stdio.h> #include<string.h> #include<stdlib.h>int fun(int m) {if(m0)return 1;else{return m*fun(m-1);} } int main(int argc, const char *argv[]) {int m;printf("please enter m:");scanf(&…

软件测试 - 测试用例设计方法之等价类划分和边界值分析

1. 等价类划分法 1.1 基本理论 等价类划分法是通过科学的方法找到具有共同特性的测试输入的集合&#xff0c;避免进行穷举测试&#xff0c;大大减少了测试用例的数量&#xff0c;从而提高测试效率。等价类划分法的典型应用场景就是输入框&#xff0c;适用于较少数量输入框的场…

【学习笔记】TypeScript编译选项

TS 中的编译选项 我们写了一个TS的文件&#xff0c;我们需要使用如下的命令将我们的TS文件转换为JS文件。 tsc xxx.ts 这样会产生一个对应的js文件 自动编译文件 编译文件时&#xff0c;使用 -W 指令后&#xff0c;TS编译器会自动监视文件的变化&#xff0c;并在文件发生变…

I.MX6U C语言运行环境构建及驱动开发格式

1.设置处理器模式 设置6ULL处于SVC模式下。设置下CPSR寄存器的bit4-0,也就是M[4:0]为100110x13.。读写状态寄存器需要用到MRS和MSR指令。MRS将CPSR寄存器数据读出到通用寄存器里面&#xff0c;MSR指令将通用寄存器的值写入到CPSR寄存器里面去。 2.设置SP指针 SP可以指向内部…

数据结构与算法:单链表

朋友们大家好&#xff0c;本节来到数据结构与算法的新内容&#xff1a;单链表 在上篇文章中&#xff0c;我们知道顺序表通常需要预分配一个固定大小的内存空间&#xff0c; 通常以二倍的大小进行增容&#xff0c;可能会造成空间的浪费&#xff0c;本篇文章我们介绍的链表可以解…

leetcode刷题(模拟问题)

题一&#xff1a;替换所有的问号 1.链接 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; 2.思路 这道题&#xff0c;最重要的就是理解什么是连续重复的字符 连续重复字符是指&#xff1a;相同字母连在一起多次出现 先遍历这个数组&#xff0c;去找到 &#x…

C语言每日一题(56)平衡二叉树

力扣网 110 平衡二叉树 题目描述 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,…

猫头虎分享已解决Bug || InvalidArgumentError in TensorFlow

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

网络报文处理流程

报文处理流程 WLAN网络中的数据包括管理报文和业务数据报文。管理报文必须采用CAPWAP隧道进行转发&#xff0c;而业务数据报文除了可以采用CAPWAP隧道转发之外&#xff0c;还可以采用直接转发方式和Soft-GRE转发方式。 管理报文用来传送AC与AP之间的管理数据&#xff0c;存在于…

苹果推出新型开源AI图像编辑模型“MGIE”;可汗学院辅助学习的GPT,Prompt 质量非常高

&#x1f989; AI新闻 &#x1f680; 苹果推出新型开源AI图像编辑模型“MGIE” 摘要&#xff1a;苹果公司最近发布了一个名为“MGIE”的开源人工智能模型&#xff0c;旨在通过自然语言指令对图片进行编辑。MGIE&#xff0c;全称MLLM-Guided Image Editing&#xff0c;依赖于多…

雨云裸金属服务器

雨云服务器与裸金属服务器&#xff1a;云端与实体的完美交融 随着信息技术的迅猛发展&#xff0c;云服务已经成为企业和个人数据处理与存储的重要选择。其中&#xff0c;雨云服务器和裸金属服务器作为两种截然不同的服务形式&#xff0c;各自拥有独特的优势和应用场景。本文将深…

【MySQL探索之旅】MySQL数据库下载及安装教程

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有…

1.Electron初始与安装

这里写目录标题 一、前言二、下载三、简要总结 一、前言 原文以及该系列后续文章请参考&#xff1a;安装Electron 随着前端的不断强盛&#xff0c;现在的前端已经不再满足于网页开发了&#xff0c;而是在尝试能否使用前端的开发逻辑来开发PC端的桌面软件。 即用html、js、css…

浅谈测试用例设计

前言 最近干的最多的事情就是设计测试用例、评审测试用例了&#xff0c;于是我不禁又想到了一个经典的问题&#xff1a;如何设计出优秀的测试用例&#xff1f; 可能有些童鞋看到这个问题会有些不以为然&#xff0c;这有什么好想的&#xff1f;干个测试谁还不会设计测试用例&a…

CSS之水平垂直居中

如何实现一个div的水平垂直居中 <div class"content-wrapper"><div class"content">content</div></div>flex布局 .content-wrapper {width: 400px;height: 400px;background-color: lightskyblue;display: flex;justify-content:…