linux包管理
# linux包管理
在刚接触ubuntu的过程中,在浏览器下载到了chrome的deb安装包,不知道怎么使用,手足无措,未知的畏惧。希望通过gpt给出命令行apt安装的方式,一直没有理解这个过程,一只学习路上的拦路虎,现在总结学到的linux包管理芝士,知识学爆。
# (安装)包和(软件)源
大多数linux系统在安装后都会有默认的源配置,这些默认源通常包括了操作系统维护者推荐的官方存储库,确保系统可以获取到必要的更新和软件包。包是从源获取到的,因此可能会收到源中给出的软件包服务器地址影响,从而影响下载速度
和安全性
。一般,安装一个系统后,可以首先更改为国内阿里云,清华,中科大软件源,加快下载、更新
Ubuntu/Debian更换源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 备份原有源
sudo rm /etc/apt/sources.list # 删除原有源
sudo nano /etc/apt/sources.list # 创建
2
3
保存并退出:按 Ctrl+O
保存更改,按 Ctrl+X
退出编辑器。
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ jammy universe
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates universe
deb http://mirrors.aliyun.com/ubuntu/ jammy multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ jammy-security universe
deb http://mirrors.aliyun.com/ubuntu/ jammy-security multiverse
2
3
4
5
6
7
8
9
10
sudo apt update # 更新软件列表
CentOS更换源
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 备份原有源
sudo rm /etc/yum.repos.d/CentOS-Base.repo # 删除原有源
sudo nano /etc/yum.repos.d/CentOS-Base.repo # 创建
2
3
保存并退出:按 Ctrl+O
保存更改,按 Ctrl+X
退出编辑器。
[baseos]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$stream/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
enabled=1
metadata_expire=7d
[appstream]
name=CentOS-$releasever - AppStream
baseurl=http://mirrors.aliyun.com/centos/$stream/AppStream/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
enabled=1
metadata_expire=7d
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo yum clean all
sudo yum makecache
2
RedHat更换源
sudo cp /etc/yum.repos.d/redhat.repo /etc/yum.repos.d/redhat.repo.bak
sudo rm /etc/yum.repos.d/redhat.repo
sudo nano /etc/yum.repos.d/redhat.repo
2
3
保存并退出:按 Ctrl+O
保存更改,按 Ctrl+X
退出编辑器。
[rhel-baseos]
name=Red Hat Enterprise Linux $releasever - BaseOS
baseurl=http://mirrors.aliyun.com/rhel/$releasever/baseos/$basearch/os/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/rhel/RPM-GPG-KEY-redhat-release
enabled=1
[rhel-appstream]
name=Red Hat Enterprise Linux $releasever - AppStream
baseurl=http://mirrors.aliyun.com/rhel/$releasever/appstream/$basearch/os/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/rhel/RPM-GPG-KEY-redhat-release
enabled=1
2
3
4
5
6
7
8
9
10
11
12
13
保存并退出:按 Ctrl+O
保存更改,按 Ctrl+X
退出编辑器。
sudo yum clean all
sudo yum makecache
2
# Redhat的yum/dnf包管理系统,以及rpm包管理
提示
rpm提供单一镜像包,yum会提供镜像和依赖。大型项目时,rpm包处理比较繁琐,使用yum包会更简单
学习《linux操作系统(微课版)Redhat8/centos8》过程,介绍了Redhat的yum dnf包管理系统,通过yum,dnf来管理BaseOS,APPstream两个软件包。同时介绍了一些dnf命令,通过测试yum,dnf,apt这些简单的指令几乎通用?
sudo dnf list all # 显示所有软件包
sudo dnf info 软件名称 # 显示仓库软件相关信息
sudo dnf install 软件名称 # 安装软件
sudo dnf remove 软件名称 # 移除安装的软件
sudo dnf clean all # 清楚缓存
2
3
4
5
在redhat/centos中,有一种低级工具rpm包管理,在浏览器下载的安装包一般是.rpm
的RPM系格式
sudo rpm -ivh 软件名.rpm # 安装rpm格式的安装包
sudo rpm -e 软件名 # 移除某软件
rpm -q 软件名 # 查询已安装软件包
2
3
# yum/dnf管理的BaseOS与APPstream
BaseOS 提供了一个基础系统环境。它为各种应用程序和服务提供稳定的运行环境,包含内核、系统工具、基础库(如 glibc
)、核心服务(如 sshd
)、文件系统工具等。简单说,提供系统必须的环境/工具
AppStream(应用流)存储库包含了各种用户空间的应用程序、开发工具、数据库、语言运行时等,例如python,php,nodejs,mysql
测试:
[cola@bogon ~]$ yum info php
Last metadata expiration check: 0:30:51 ago on Sat 07 Sep 2024 04:35:06 AM PDT.
Available Packages
Name : php
Version : 7.2.24
Release : 1.module_el8.2.0+313+b04d0a66
Arch : x86_64
Size : 1.5 M
Source : php-7.2.24-1.module_el8.2.0+313+b04d0a66.src.rpm
Repo : AppStream # 在这里可以得到验证,php属于appstream给用户提供的可选包
Summary : PHP scripting language for creating dynamic web sites
URL : http://www.php.net/
License : PHP and Zend and BSD and MIT and ASL 1.0
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
: easy for developers to write dynamically generated web pages. PHP also
: offers built-in database integration for several commercial and
: non-commercial database management systems, so writing a
: database-enabled webpage with PHP is fairly simple. The most common
: use of PHP coding is probably as a replacement for CGI scripts.
:
: The php package contains the module (often referred to as mod_php)
: which adds support for the PHP language to Apache HTTP Server.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# ubuntu的apt/dpkg包管理系统,及snap商店
在使用gpt提供的指令玩ubuntu时,见到更多的是apt安装软件的方式。上面提到,apt包管理指令类似yum/dnf
sudo apt update # 更新软件包列表
sudo apt upgrade # 更新软件包列表
sudo apt search 软件名 # 搜索包列表是否有某个软件
sudo apt info 软件名 # 查看软件相关信息
sudo apt install 软件名 # 安装某软件
sudo apt remove 软件名 # 移除某软件
sudo apt list --installed # 列出通过apt已安装软件
2
3
4
5
6
7
在ubuntu中,有一种低级工具dpkg包管理,在浏览器下载的安装包一般是.deb
的debian系格式
sudo dpkg -i 安装包.deb # 安装deb格式的安装包 -i/install
sudo dpkg -r 软件名 # 移除某软件 -r/remove
2
扩展:snap
在ubuntu desktop22.04中,自带的软件商店又叫snap商店,可以通过简单的点击实现安装软件。在刷知乎时,看到大佬们提到snap包一直被程序员诟病(段位太低,暂时只感到商店加载缓慢)。
snap list # 列出snap已安装软件
sudo snap remove 软件名 # 移除某软件
2
主要缺点:
- 性能问题 需要加载依赖,启动时间长,体验差
- 软件包大小 冗余数据,Snap 应用包含所有的依赖项,因此它的包比deb 包要大得多
- 应用更新 Snap 应用会自动从 Snap 商店更新