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 vi /etc/apt/sources.list # 创建
2
3
配置内容
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 vi /etc/yum.repos.d/CentOS-Base.repo # 创建
2
3
以下是一些常用的国内centos 7镜像源,你可以选择其中一个替换。
- 阿里云源
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- 清华大学源
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo
- 网易源
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
- 中科大源
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.ustc.edu.cn/centos/7/os/x86_64/
如果是最小安装没有wget,把下面内容写入/etc/yum.repos.d/CentOS-Base.repo
文件中
点击查看
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
yum clean all
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 应用包含所有的依赖项 - 应用更新:
指定snap更新
Snap 应用会自动从 Snap 商店更新