openSUSE 15.2已結束生命週期,還不升級嗎?

夢哲發表於2022-01-16

openSUSE Leap 15.2自2022年1月4日起已結束生命周(EOL),還在使用該系統的使用者未來將不會再收到任何形式的安全與維護更新。
建議所有使用者儘快將系統升級到 - openSUSE Leap 15.3,該系統將獲得安全補丁和更新直至2022年11月。下一個版本openSUSE Leap 15.4也將預計在2022年6月釋出。

喜歡滾動更新版的的朋友,也可以藉此機會從Leap版本切換到Tumbleweed版本。

openSUSE Leap的版本升級可以通過聯網線上升級,也可以通過下載最新版本的ISO檔案進行線下升級,這裡面我們將看看如何線上升級。

openSUSE Leap線上升級

使用線上升級的方式有如下優勢:

  • 只需要下載需要更新的軟體包,將節省不少頻寬
  • 在升級期間,雖然不推薦,但是你任然可以使用系統,只有在升級完成後需要重新啟動
  • 因為不需要下載ISO映象檔案,所以不需要DVD驅動器或者燒錄USB啟動盤,需要的僅僅是網路

當然線上升級也有如下缺點:

  • 如果由於某些原因,導致升級過程被中斷(例如突然斷電,網路連線斷開),升級程式無法繼續,這有可能會留下一個被破壞的系統
  • 如果有多個系統需要升級,那麼下載ISO映象可能會更省頻寬

注意,如果你使用的是更舊的Leap版本,例如 15.1,請先升級到15.2之後,再升級到15.3 。

你可以使用如下命令檢視當前版本

> lsb_release -d
Description:     openSUSE Leap 15.2

雖然正常的升級不會導致使用者資料的丟失,但是為了安全,建議在升級之前備份自己重要的個人資料。

升級系統之前的準備

首先檢查更新源是否存在並更新當前發行版本的軟體包

# zypper repos --uri
...
29 | repo-update                   | 主更新源                                                                              | Yes     | (  ) No   | No      | https://mirrors.tuna.tsinghua.edu.cn/opensuse/update/leap/15.2/oss/
30 | repo-update-non-oss           | 主更新源(非開源軟體)                                                                 | Yes     | (  ) No   | No      | https://mirrors.tuna.tsinghua.edu.cn/opensuse/update/leap/15.2/non-oss/
...

這裡我使用了清華大學的映象源(https://mirrors.tuna.tsinghua...
如果上面一樣已經存在更新源,則進行下一步;如果沒有更新源,請新增

# zypper addrepo --check --refresh --name 'openSUSE-Leap-15.2-Update' http://download.opensuse.org/update/leap/15.2/oss/ repo-update

將 /var/cache 移動到一個獨立子卷(subvolume)

注意,如果你係統的根檔案系統不是 Btrfs 的型別,則可以跳過這一步

  • 查詢根檔案系統的裝置名

    # df /
    Filesystem     1K-blocks     Used Available Use% Mounted on
    /dev/sdb3       62914560 37723280  24393296  61% /
  • 確定所有其他子卷的父卷

    # btrfs subvolume list /

    一般來說應該是 @

  • 掛在指定子捲到臨時掛載點

    # mount /dev/sdb3 -o subvol=@ /mnt
  • 為了避免資料丟失,備份下快取

    # mv /mnt/var/cache /mnt/var/cache.old
  • 建立一個新的子卷,並將快取移回

    # btrfs subvol create /mnt/var/cache
    
    # mv /mnt/var/cache.old/* /mnt/var/cache/
    # rm -rf /mnt/var/cache.old
  • 解除安裝臨時掛載點,然後將新的快取子卷新增到 /etc/fstab

    # umount /mnt

    新增以下條目到 /etc/fstab

UUID=4f648797-078d-426f-b103-51d9a73dd937       /var/cache    btrfs   subvol=/@/var/cache   0       0

這裡的UUID應該是和根檔案系統的一樣。

# mount /var/cache

將當前系統的包更新到最新

# zypper ref

# zypper update

執行發行版升級 -> 15.3

  • 更新軟體源版本
# sed -i 's/15.2/${releasever}/g' /etc/zypper/repos.d/*.repo
  • 重新整理所有軟體源
# zypper --releasever=15.3 ref

如果在此期間,發現某些自己新增OBS軟體源不可用的話,可以先Disable掉。

  • 最後就是執行發行版的版本升級
# zypper --releasever15.3 dup

你可能會被詢問一些軟體包提供商的更改,因為之前我們可能使用其他軟體源安裝了比較新版本的軟體包,我們只需要選擇相應選項就可以,最後會得到如下提示

The following NEW product is going to be installed:
  "openSUSE Leap 15.3"

The following product is going to be REMOVED:
  "openSUSE Leap 15.2"

The following package requires a system reboot:
  kernel-preempt-5.3.18-59.10.1

2732 packages to upgrade, 876 to downgrade, 394 new, 75 to remove, 2430  to change vendor.
Overall download size: 3.14 GiB. Already cached: 0 B. After the operation, 17.4 MiB will be freed.

    Note: System reboot required.
Continue? [y/n/v/...? shows all options] (y):

敲一個 'y' 然後回車,就開始了漫長的(卻決於你的網路環境和使用的軟體源映象地址)下載和安裝過程了,升級過程中你任然可以使用你的系統 ^\_^ 。

完成所有下載和安裝之後,會要求你重啟你的系統,關閉你的所有應用,然後重啟你的系統,你將會得到一個新版本(Leap 15.3)的openSUSE系統。

> lsb_release -d
Description:    openSUSE Leap 15.3

之後就可以繼續新增你需要使用的OBS軟體源(當然對應 15.3 版本)來安裝其他軟體包了。

總結

Leap發行版是openSUSE的常規發行版本,基本上12個月會進行一次小版本的更新,例如從 15.2 -> 15.3 -> 15.4; 每36-38個月會進行一次大版本的升級,例如 15.x -> 16.x 。
openSUSE還發行了Tumbleweed版本,也就是滾動更新版本,其軟體源提供了所有最新的軟體包進行滾動升級。
這裡我們看到了如何升級一個Leap版本,過程不算複雜,總結來說就是更新軟體源版本,然後通過 zypper dup 進行更新,我使用了openSUSE已經多年了,幾乎都是每個版本這樣升級上來的。
說實話,在所有的Linux桌面發行版中,openSUSE不算流行,但是我的使用體驗是非常穩定,配合KDE桌面環境,也是非常優雅漂亮的一款Linux發行版,希望喜歡Linux桌面用於辦公的小夥伴來嘗試。


【同時釋出在 Mengz's blog

相關文章