《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 系统上自由地安装和管理各种软件了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MogaNet实战:使用 MogaNet实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

「Linux」软件安装

MySQL5.7在CentOS安装 安装 配置yum仓库 更新密钥&#xff1a;rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022安装MySQL yum库&#xff1a;rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm使用yum安装MySQL&#xff1a;yum -y in…

接口测试 05 -- 接口加密处理

前言 实际工作当中,涉及到接口加密时,每一个公司加密方式都是不一样的。 1. 遇到接口加密的解决方法: ① 如果是一些常用的加密,可以通过 (第三方)工具或者代码去解决。 ② 如果是开发自己封装的加密方法,核心逻辑外人是无法知道的,最好的方式让开发去协助你。提供接口去…

ChinaXiv:中科院科技论文预发布平台

文章目录 Main彩蛋 Main 主页&#xff1a;https://chinaxiv.org/home.htm 彩蛋

python 笔记:shapely(形状篇)

主要是点&#xff08;point&#xff09;、线&#xff08;linestring&#xff09;、面&#xff08;surface&#xff09; 1 基本方法和属性 object.area 返回对象的面积&#xff08;浮点数&#xff09; object.bounds 返回一个&#xff08;minx, miny, maxx, maxy&#xff09;元…

发廊理发店微信小程序展示下单前端静态模板源码

模板描述&#xff1a;剪发小程序前端源码&#xff0c;一共五个页面&#xff0c;包括店铺、理发师、订单、我的等页面 注&#xff1a;该源码是前端静态模板源码&#xff0c;没有后台和API接口

【Linux进阶之路】网络——“?“(上)

文章目录 一、历史发展1. 独立形态2. 互联形态3. 局域网 二、网络协议1.OSI七层协议2.TCP/IP四&#xff08;五&#xff09;层模型 三、网络通信1.封装与解包2.数据的传输1.局域网2.广域网 总结尾序 本篇文章的目的是带大家初步认识网络&#xff0c;为后面的网络编程打下基础&am…

js基础(2)

对象 object也是js的一种数据类型 其静态特征可以用基本数据类型表示 动态行为可以用函数表示 语法&#xff1a; 增删改查 查&#xff1a;对象.属性 改: 对象.属性值 增&#xff1a;对象.新属性名新值 删&#xff1a;delete 对象.属性名 查的另一种写法&#xff1a; 对…

2024.2.3 作业

1、实现单向循环链表的头插头删尾插尾删 #include<stdio.h> #include<string.h> #include<stdlib.h> typedef int datatype; typedef struct node {//数据域int data;//指针域struct node *next; }*Linklist; Linklist create() {Linklist s(Linklist)mallo…

windows配置开机自启动软件或脚本

文章目录 windows配置开机自启动软件或脚本配置自启动目录开机运行的脚本调试开机自启动脚本配置守护进程(包装成自启动服务)使用任务计划程序FAQ 开机自动运行脚本示例 windows配置开机自启动软件或脚本 配置自启动目录 在Windows中添加开机自动运行的软件&#xff0c;可以按…

使用R语言建立回归模型并分割训练集和测试集

通过简单的回归实例&#xff0c;可以说明数据分割为训练集和测试集的必要性。以下先建立示例数据: set.seed(123) #设置随机种子 x <- rnorm(100, 2, 1) # 生成100个正态分布的随机数&#xff0c;均值为2&#xff0c;标准差为1 y exp(x) rnorm(5, 0, 2) # 生成一个新的变…

SQLyog安装配置(注册码)连接MySQL

下载资源 博主给你打包好了安装包&#xff0c;在网盘里&#xff0c;只有几Mb&#xff0c;防止你下载到钓鱼软件 快说谢谢博主&#xff08;然后心甘情愿的点个赞~&#x1f60a;&#xff09; SQLyog.zip 安装流程 ①下载好压缩包后并解压 ②打开文件夹&#xff0c;双击安装包 ③…

docker常用容器命令

首先说下容器&#xff1a; 它是指当docker运行镜像时&#xff0c;创建了一个隔离环境&#xff0c;称之为 容器。 这种方式优点&#xff1a;可以开启多个服务&#xff0c;服务之前是互相隔离的&#xff08;比如&#xff1a;在一台服务器上可以开启多个mysql&#xff0c;可以是…

【AI之路】使用RWKV-Runner启动大模型,彻底实现大模型自由

文章目录 前言一、RWKV-Runner是什么&#xff1f;RWKV-Runner是一个大语言模型的启动平台RWKV-Runner官方功能介绍 二、使用步骤1. 下载文件 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; ChatGPT的横空出世&#xff0c;打开了AI的大门&#xff…

【通讯录案例-保存开关状态 Objective-C语言】

一、接下来,我们要实现一个什么功能呢,在这个,我们的“通讯录”里边儿, 1.我们有两个开关,“记住密码”、“自动登录”、两个开关, 如果我们点击“记住密码”, 如果我们点击“记住密码”,然后呢,我把这个程序关了,我下一次再打开这个程序的时候,这个用户名和密码,…

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…

HTTP基本概念-HTTP 是什么?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 是什么? HTTP 是超文本传输协议&#xff0c;也就是HyperText Transfer Protocol。 能否详细解释「超文本传输协议」? HTTP 的名字「超文本协议传输」&#xff0c;它可以拆成三个部分: 超文本传输…

ruoyi-nbcio中xxl-job的安装与使用

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a; http://122.227.135.243:9666 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbach…

【python】Fraction类详解及生成分数四则运算“试卷”

文章目录 一、前言实验所需的库终端指令Fraction类1. Fraction(numerator, denominator)&#xff1a;2. Fraction(numerator)3. Fraction()4. 分数作参数5. 负分数作参数6. 字符串作参数7. 小数作参数8. 科学计数法9. 浮点数作参数10. 浮点数精度问题11. Decimal对象作参数 二、…

力扣刷题之旅:高阶篇(三)—— 图算法的挑战

力扣&#xff08;LeetCode&#xff09;是一个在线编程平台&#xff0c;主要用于帮助程序员提升算法和数据结构方面的能力。以下是一些力扣上的入门题目&#xff0c;以及它们的解题代码。 --点击进入刷题地址 引言 在算法世界的深处&#xff0c;图算法犹如一座高峰&#xff…