当前位置:   article > 正文

升级和回滚树莓派系统_树莓派升级系统版本

树莓派升级系统版本

系统更新及升级

让你的树莓派保持最新状态很重要。第一个也是最重要的原因是安全性。运行Raspberry Pi OS的设备包含数百万行代码。随着时间的推移,这些数百万行代码将暴露众所周知的漏洞,这些漏洞记录在公开可用的数据库中,这就意味着它们很容易被利用。作为Raspberry Pi OS的用户,预防这些漏洞的唯一方法是让您的软件保持最新,因为上游存储库会密切跟踪CVE并尝试快速缓解它们。

与第一个原因相关的第二个原因是,您在设备上运行的软件肯定包含错误。一些错误被记录在CVE(CVE 的英文全称是“Common Vulnerabilities & Exposures”通用漏洞披露),但还有一些bug仅影响所需的功能,与安全无关。通过使您的软件保持最新,您可以降低遇到这些错误的机会。

APT

管理安装、升级和删除软件的最简单方法是使用Debian的APT(高级打包工具)。要更新Raspberry Pi OS中的软件,您可以从终端窗口使用apt工具。

树莓派系统将apt的软件源列表保存在/etc/apt/sources.list文件中。在安装软件之前,您应该使用apt update更新软件包列表。继续,打开终端窗口并键入:

sudo apt update
  • 1

接下来,使用以下命令将所有已安装的软件包升级到最新版本:

sudo apt full-upgrade
  • 1

注意:在树莓派中内核以及固件均被做成deb安装包安装在系统内,运行此命令将同时会将内核版本和固件升级到最新版本。

请注意,full-upgrade优先于upgrade,因为它还会拉取可能已进行的任何依赖项更改。
在树莓派deb安装包中会拥有一些依赖包,这些依赖包在使用 full-upgrade 命令时也会一起更新。

一般来说,定期执行此操作将使您的安装保持最新,以适应您正在使用的特定主要Raspberry Pi OS版本(例如Buster)。它不会从一个主要版本更新到另一个版本,例如,Stretch to Buster或Buster to Bullseye。
Buster对应debian10,Bullseye对应debian11

然而,Raspberry Pi OS映像中偶尔会出现需要手动干预的更改,例如新推出的软件包。这些软件包不随升级一起安装,因为此命令仅更新您已安装的软件包。

内核和固件作为Debian包安装,因此在使用上述过程时也会得到更新。这些软件包在经过大量测试后很少更新。

如果将现有SD卡移动到新的Raspberry Pi型号(例如Raspberrry Pi Zero 2 W),您可能还需要首先使用上述说明更新内核和固件。

空间不足

当运行sudo apt full-upgrade时,它将显示将下载多少数据以及将占用SD卡上的空间。值得用df -h检查您是否有足够的可用磁盘空间,apt不会在安装前检查空间是否足够。此外,下载的包文件(.deb文件)保存在/var/cache/apt/archives中。您可以使用sudo apt clean(在apt的旧版本中,sudo apt-get clean)删除这些以释放空间。

建议就用一个大一些的内存卡,防止出现这些奇奇怪怪的错误。

从以前的操作系统版本升级

树莓派支持从以前的镜像升级,但不能保证在任何情况下都能正常工作,这么做有风险。如果确实希望升级操作系统版本,建议首先进行备份 — 树莓派对于更新失败导致的数据丢失,不承担任何责任。

提示:做危险操作的时候就先备份一份系统

树莓派OS的最新版本基于Debian Bullseye。以前的版本基于Buster。如果您想执行从Buster到Bullseye的系统升级(并且您意识到风险),请参阅论坛中的说明

查找软件

通过关键字查找包,这个功能还比较常用,当你想找某些功能的安装包又不知道叫什么名字的时候有奇效。

apt-cache search locomotive
sl - Correct you if you type `sl' by mistake
  • 1
  • 2

使用apt-cache show可以在安装软件包之前查看有关该软件包的更多信息:

apt-cache show sl
Package: sl
Version: 3.03-17
Architecture: armhf
Maintainer: Hiroyuki Yamamoto <yama1066@gmail.com>
Installed-Size: 114
Depends: libc6 (>= 2.4), libncurses5 (>= 5.5-5~), libtinfo5
Homepage: http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html
Priority: optional
Section: games
Filename: pool/main/s/sl/sl_3.03-17_armhf.deb
Size: 26246
SHA256: 42dea9d7c618af8fe9f3c810b3d551102832bf217a5bcdba310f119f62117dfb
SHA1: b08039acccecd721fc3e6faf264fe59e56118e74
MD5sum: 450b21cc998dc9026313f72b4bd9807b
Description: Correct you if you type `sl' by mistake
 Sl is a program that can display animations aimed to correct you
 if you type 'sl' by mistake.
 SL stands for Steam Locomotive.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

APT安装软件包

sudo apt install tree
  • 1

键入此命令应通知用户软件包将占用多少磁盘空间,并要求确认软件包的安装。输入Y(或按Enter键,因为是默认操作)将允许安装。这可以通过在命令中添加-y标志来绕过:

sudo apt install tree -y
  • 1

安装此软件包后,用户可以使用tree命令。

APT卸载软件包

使用apt remove卸载软件包。

sudo apt remove tree
  • 1

系统会提示用户确认删除。同样,-y标志将自动确认。
您还可以选择使用apt purge完全删除包及其关联的配置文件:

sudo apt purge tree
  • 1

rpi-update

rpi-update是一个命令行应用程序,它会将Raspberry Pi OS内核和VideoCore固件更新到最新的预发布版本

软件的预发布版本不能保证正常工作。除非别无他法,否则不应在任何系统上使用rpi-update。它可能会使系统不可靠,甚至完全崩溃。它不应作为任何定期更新过程的一部分

简单点就是没事别用这个命令升级。

rpi更新脚本最初由Hexxeh编写,但现在由树莓派工程师支持。脚本源码位于rpi-update存储库中。

此命令运行后做了哪些工作

rpi-update将下载最新的预发布版本的linux内核、其匹配模块、设备树文件以及最新版本的VideoCore固件。然后,它会将这些文件安装到SD卡上的相关位置,覆盖所有以前的版本。

rpi-update使用的所有源数据都来自rpi-update存储库。该存储库只是官方固件存储库数据的一个子集,因为不需要来自该存储库的所有数据。

提示:这个命令执行时会拉取GitHub仓库,在国内使用效果并不好,如果非要使用则需要一些魔法。

运行rpi-update

如果您确定需要使用rpi-update,建议先备份当前系统,因为运行此命令可能会导致系统无法启动。

rpi-update需要以root身份运行。更新完成后,需要重新启动设备。

sudo rpi-update
sudo reboot
  • 1
  • 2

它有许多选项记录在rpi-update存储库中。

回退升级

如果你是既没备份,又成功升级的同时又遇见了系统异常(不包括无法启动系统)的小倒霉蛋,这里还给出了一个可以安全恢复的后悔药。

sudo apt-get update
sudo apt install --reinstall libraspberrypi0 libraspberrypi-{bin,dev,doc} raspberrypi-bootloader raspberrypi-kernel
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/404069
推荐阅读
相关标签
  

闽ICP备14008679号