Linux:告別Jammy,擁抱Noble!WSL Ubuntu 22.04 到 24.04 LTS 終極升級指南

大家好!如果大家和我一樣,是Windows Subsystem for Linux (WSL) 的忠實用戶,那么大家一定對Ubuntu在其中的表現印象深刻。我們中的許多人可能還在使用穩定可靠的Ubuntu 22.04 LTS (Jammy Jellyfish)。但現在,一個更令人興奮的時代已經到來——Ubuntu 24.04 LTS (Noble Numbat) 已經正式發布,并且從22.04 LTS的直接升級路徑也已開放!

升級到最新的LTS(長期支持)版本,意味著我們不僅能享受到最新的功能、性能優化和安全更新,還能確保在未來數年內獲得持續的官方支持。那么,為什么要升級?如何安全、平穩地完成這次“遷徙”?

別擔心,這篇指南將帶大家走完從備份到驗證的全過程,確保我們的WSL環境無痛升級。讓我們開始吧!
在這里插入圖片描述

為什么要升級到Ubuntu 24.04 LTS?

在我們動手之前,先來看看“高貴的努比亞特”為我們帶來了哪些誘人的新特性:

  • Linux內核 6.8: 帶來了更強的硬件支持、性能改進和新的系統調用功能。
  • 默認啟用.NET 8: 對于.NET開發者來說,這是一個巨大的福音,開箱即用,無需額外配置。
  • 更新的工具鏈: 包括GCC 14, Glibc 2.39, Python 3.12, OpenJDK 21等,讓我們的開發環境保持在技術前沿。
  • 增強的安全性: 提供了更嚴格的內核安全設置和應用限制,為我們的工作保駕護航。
  • 企業級管理改進: 引入了新的管理工具和策略,簡化了大規模部署和維護。

簡而言之,升級就是擁抱未來。現在,讓我們確保這個過程萬無一失。

升級流程概覽

為了對整個過程有一個清晰的認識,我繪制了以下的流程圖:
在這里插入圖片描述

步驟一:安全第一!備份我們的WSL實例

在進行任何重大系統更改之前,備份是我們的“后悔藥”。 盡管WSL的升級過程通常很穩定,但我們必須為最壞的情況做準備。

  1. 完全關閉WSL服務
    為了確保文件系統的一致性,請打開Windows的PowerShell或CMD,運行以下命令:

    wsl --shutdown
    
  2. 導出Ubuntu實例
    接下來,我們將整個Ubuntu 22.04環境打包成一個文件。請繼續在PowerShell中運行:

    # 格式: wsl --export <實例名> <備份文件路徑.tar>
    wsl --export Ubuntu-22.04 "D:\wsl-backups\Ubuntu-22.04-backup-$(Get-Date -Format 'yyyyMMdd').tar"
    

    請注意:

    • Ubuntu-22.04 替換為我們的WSL實例的確切名稱(可以通過 wsl -l -v 命令查看)。
    • D:\wsl-backups\ 替換為我們自己選擇的、空間充足的備份目錄。

完成這一步,我們就有了堅實的后盾。如果升級失敗,我們可以隨時通過 wsl --import 命令恢復它。

步驟二:為升級做準備——更新現有系統

在“跳躍”到新版本之前,我們需要確保當前的系統處于最佳狀態。

  1. 啟動Ubuntu 22.04 WSL實例。

  2. 在Ubuntu終端中,依次執行以下命令:

    # 更新軟件包列表
    sudo apt update# 升級所有已安裝的軟件包
    sudo apt upgrade -y# 處理可能存在的依賴關系變更
    sudo apt dist-upgrade -y# 移除不再需要的舊依賴
    sudo apt autoremove -y# 清理舊的軟件包緩存
    sudo apt autoclean
    

    這個“一條龍”服務能確保我們的系統干凈、最新,為版本升級掃清障礙。

步驟三:配置升級管理器,瞄準LTS

我們需要明確告訴系統,我們的目標是下一個LTS版本,而不是中間的非LTS版本。

  1. 編輯升級配置文件
    使用編輯器(這里以nano為例)打開配置文件:

    sudo nano /etc/update-manager/release-upgrades
    
  2. 確保Prompt值為lts
    在文件中找到 Prompt= 這一行,確保它的值是 lts

    # /etc/update-manager/release-upgrades
    [DEFAULT]
    # Default prompting behavior, valid options:
    #
    #  never  - Never check for a new release.
    #  normal - Check to see if a new release is available.  If so, inform the
    #           user but don't offer to upgrade unless the user runs
    #           do-release-upgrade.
    #  lts    - Check to see if a new LTS release is available.  If so,
    #           inform the user and turn on the upgrade button in
    #           update-manager.
    Prompt=lts
    

    如果已經是 lts,則無需修改。如果不是,請修改后保存退出(在nano中按 Ctrl+X -> Y -> Enter)。

步驟四:執行升級!見證奇跡的時刻

萬事俱備,只欠東風。現在,讓我們啟動升級程序。

  1. 運行升級命令
    在Ubuntu終端中,輸入這個神奇的命令:

    sudo do-release-upgrade
    
  2. 跟隨屏幕提示

    • 系統會檢查軟件源,然后告訴我們它找到了新版本 “24.04 LTS”。
    • 它會計算升級所需的下載量、磁盤空間等信息,并詢問我們是否要繼續。勇敢地輸入 y 并按 Enter
    • 在升級過程中,系統可能會詢問如何處理被修改過的配置文件。通常,選擇保留維護者提供的最新版本(默認選項)或保留我們自己的版本都是可以的。如果不確定,按 Enter 選擇默認值通常是安全的。
    • 對于 libc6 等核心庫的配置,系統可能會詢問是否在升級期間重啟服務。建議選擇 Yes,以避免潛在的服務中斷。

這個過程會下載數百個軟件包并進行配置,所需時間取決于我們的網絡速度和電腦性能。泡杯咖啡,耐心等待即可。

步驟五:收尾工作與驗證

升級完成后,我們需要進行最后的確認和清理。

  1. 重啟WSL
    升級腳本最后會提示我們需要重啟。在WSL環境中,這意味著關閉當前的會話。

    • 首先,在PowerShell中再次運行 wsl --shutdown 來確保所有WSL實例都已關閉。
    • 然后,重新啟動我們的Ubuntu實例。
  2. 驗證升級結果——“開獎”時刻
    打開新的Ubuntu終端,運行以下命令:

    lsb_release -a
    

    如果我們看到如下輸出,那么我們升級成功了!

    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 24.04 LTS
    Release:        24.04
    Codename:       noble
    
  3. 最后的清理
    在新系統上,我們再做一次清理,以確保所有依賴關系正確,并移除升級后產生的無用軟件包。

    sudo apt update
    sudo apt upgrade -y
    sudo apt autoremove -y
    sudo apt autoclean
    

常見問題與注意事項 (FAQ)

  • 我的WSL版本太舊怎么辦?
    Ubuntu 24.04 LTS需要較新版本的WSL。在PowerShell中運行 wsl --update 將WSL更新到最新版本,可以避免很多奇怪的問題。

  • 升級失敗了怎么辦?
    別慌!這就是我們第一步做備份的原因。我們可以刪除或注銷失敗的實例 (wsl --unregister YourInstanceName),然后通過 wsl --import 命令從之前的備份文件中恢復我們的22.04環境。

  • 升級后我的第三方PPA(個人軟件包存檔)失效了?
    這是正常現象。升級過程為了安全會禁用所有第三方PPA。升級成功后,我們需要手動檢查這些PPA是否支持24.04,然后重新編輯源文件(通常在 /etc/apt/sources.list.d/ 目錄下)并啟用它們。

  • 升級提示空間不足?
    升級需要額外的磁盤空間來下載和解壓新軟件包。請確保我們的WSL虛擬磁盤有足夠的空間(建議至少有15-20GB的可用空間)。

結語

我們已經成功地將我們的WSL開發環境帶入了“Noble Numbat”的新紀元。通過這次升級,我們不僅獲得了最新的功能和性能,更重要的是,為未來幾年的開發工作打下了堅實、可靠的基礎。

希望這篇詳盡的指南能幫助大家順利完成升級。享受在Windows上無縫運行最新版Ubuntu的樂趣吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/91786.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/91786.shtml
英文地址,請注明出處:http://en.pswp.cn/web/91786.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

江協科技STM32 11-1 SPI通信協議

本節課我們將繼續學習下一個通信協議&#xff0c;SPI。SPI通信和我們剛剛學習過的I2C通信差不多。兩個協議的設計目的都一樣都是實現主控芯片和各種外掛芯片之間的數據交流&#xff0c;有了數據交流的能力&#xff0c;我們的主控芯片就可以掛載并操縱各式各樣的外部芯片&#x…

預過濾環境光貼圖制作教程:第一步 - HDR 轉立方體貼圖

在基于物理的渲染(PBR)中,環境光貼圖是實現真實光照效果的核心組件之一。而將 HDR 全景圖轉換為立方體貼圖,是制作預過濾環境光貼圖的基礎步驟。本教程將詳細講解如何實現這一轉換過程。 什么是 HDR 轉立方體貼圖? HDR(高動態范圍)全景圖通常以等矩形投影(Equirectan…

02 深度學習介紹【動手學深度學習v2】| 學習筆記

1、intro自然語言處理雖然我們過去取得了很大的進展&#xff0c;但是實際上還是停留在感知層面。計算機視覺領域&#xff0c;因為圖片里面都是像素&#xff0c;像素很難用符號學來解釋&#xff0c;所以計算機視覺大部分是用概率模型或機器學習來做。深度學習它是機器學習的一種…

智能學號抽取系統V5.6.4重磅發布

告別隨機數&#xff0c;擁抱智能點名&#xff01;—— 全新升級的“智能學號抽取系統V5.6.4”重磅發布&#xff01; 摘要&#xff1a; 還在為課堂隨機提問、活動抽獎而手動翻名單、查表格而煩惱嗎&#xff1f;還在忍受傳統點名工具的簡陋和不智能嗎&#xff1f;今天&#xff0…

Leetcode-141.環形鏈表

dict和set 1. 結構上的區別&#xff1a;類型鍵&#xff08;Key&#xff09;值&#xff08;Value&#xff09;示例dict有有{a: 1, b: 2}set有沒有{a, b} dict 是**鍵值對&#xff08;key-value&#xff09;**的集合。set 是只有鍵&#xff08;key&#xff09;沒有值的一組唯一元…

調節步進電機速度時調PSC和調ARR的區別

在步進電機控制中&#xff0c;調節速度通常是通過改變脈沖頻率實現的。代碼中選擇調節ARR&#xff08;Auto-Reload Register&#xff09;而非PSC&#xff08;Prescaler&#xff09;的原因如下&#xff1a; 1. ARR 與 PSC 的核心區別 ? ARR&#xff08;自動重載寄存器&#xff…

在 AKS 中運行 Azure DevOps 私有代理-1

簡介 配置 Azure DevOps 私有代理的傳統方法是將其部署在虛擬機 (VM) 上。然而,一個有趣的替代方案是利用 Azure Kubernetes 服務 (AKS) 來實現此目的。 本文將指導您如何使用 Helm Chart 在 AKS 集群中設置 Azure DevOps 私有代理,并提供該過程的分步說明。 在 AKS 中部署…

C# _Json數據

目錄 1、添加Json庫 2、數據序列化&#xff08;對象轉 JSON&#xff09;和反序列化&#xff08;JSON 轉對象&#xff09;操作 3、序列化 創建和讀取Json數據 創建Json數據 定義一個CreateJson方法 讀取 解析 Json數據 定義一個ReadJson方法 4、程序運行結果 在 C# 中&…

JavaScript 原始值與引用值

JavaScript 原始值與引用值 ECMAScript變量可以包含兩種不同類型的數據&#xff1a;原始值和引用值。 原始值&#xff08;primitive value&#xff09;就是最簡單的數據&#xff0c;引用值&#xff08;reference value&#xff09;則是由多個值構成的對象。 保存原始值的變量是…

linux中掛載磁盤和卸載

查找磁盤 找到你想要掛載的磁盤。可以使用lsblk或fdisk -l命令來查看系統中所有的磁盤和分區信息。 lsblk 對數據盤進行分區 在fdisk交互界面里&#xff0c;按以下步驟操作 fdisk /dev/vdb- 輸入n來創建新分區。 - 按照提示設置分區的起始扇區、結束扇區等信息&#xff0c;…

java8學習筆記-Stream流

JDK1.8新增了Stream類&#xff0c;從而把函數式編程的風格引入到Java語言中&#xff0c;Stream類的API提供了強大的功能&#xff0c;使用Stream后&#xff0c;可以寫出更加強大&#xff0c;更加簡潔的代碼首先&#xff0c;Stream流有一些特性&#xff1a;Stream流不是一種數據結…

Flutter開發 dart語言基本語法

特點 Dart語言支持JIT與AOT。 Dart語言采用單線程模型。 Dart語言是強類型編程語言&#xff0c;但是允許弱類型語言式編程。 基本語法 1.變量和常量 變量 var、object、dynamic關鍵字或數據類型顯式聲明變量。 命名規則&#xff1a; 變量名稱必須由數字、字母、下劃線或$組成&a…

SpringBoot:基于 Redis 自定義注解實現后端接口防重復提交校驗(冪等操作)

SpringBoot&#xff1a;基于 Redis 自定義注解實現后端接口防重復提交校驗&#xff08;冪等操作&#xff09;可基于 時間間隔 和 用于冪等判斷的參數名稱 實現防重復提交校驗 客戶端發送請求 ↓ [Spring Boot 應用入口]↓ ┌─────────────────────────…

【語音技術】意圖與語料

目錄 1. 意圖 1.1. 意圖分類 1.1.1 入口意圖&#xff08;Entry Intent&#xff09; 1.1.2 對話意圖&#xff08;Dialog Intent&#xff09; 1.2. 意圖類型切換操作步驟 2. 語料 2.1 語料分類詳解 2.2 語料編寫規范詳解 2.3 標簽符號深度說明 3. 詞槽 3.1 符類型要求 …

【MySQL集群架構與實踐5】使用Docker實現水平分片

目錄 一. 在Docker中安裝ShardingSphere 二. 實踐&#xff1a;水平分片 2.1 應用場景 2.2 架構圖 2.3 服務器規劃 2.4 創建server-user容器 2.5 創建server-order0和server-order1容器 2.6.日志配置 2.7 數據節點配置 2.8.測試數據節點 2.8.1.測試server_order0.t_or…

視覺圖像處理中級篇 [1]—— 彩色照相機的效果與預處理

在工業檢測中&#xff0c;黑白相機雖應用廣泛&#xff0c;但在應對顏色差異檢測時往往力不從心。彩色照相機憑借其對色彩信息的精準捕捉&#xff0c;成為復雜場景下的理想選擇&#xff0c;而預處理技術則進一步釋放了其性能潛力。一、彩色照相機的效果檢查蓋子上的金色標簽可以…

使用 BERT 的 NSP 實現語義感知切片 —— 提升 RAG 系統的檢索質量

在構建 Retrieval-Augmented Generation&#xff08;RAG&#xff09;系統時&#xff0c;文檔的切片方式至關重要。我們需要將長文本切分成合適的段落&#xff08;chunks&#xff09;&#xff0c;然后存入向量數據庫進行召回。如果切得太粗&#xff0c;會丟失上下文細節&#xf…

使用STM32CubeMX生成的STM32CubeIDE工程在更改工程名后編譯失敗問題解決

0 問題描述 使用STM32CubeMX生成STM32CubeIDE工程,然后使用STM32CubeIDE改名后編譯提示如下錯誤: 1 問題原因及解決辦法 1.1 問題原因 原因在于更名后STM32CubeIDE沒有自動更新引用關系,這是因為我們使用STM32CubeMX生成代碼時沒有勾選在根目錄下生成: 取消勾選在根目…

8月3日星期日今日早報簡報微語報早讀

8月3日星期日&#xff0c;農歷閏六月初十&#xff0c;早報#微語早讀。1、廣西防城港&#xff1a;奔馳女司機身份已查清&#xff0c;結果將統一對外發布&#xff1b;2、陳藝文、陳佳包攬游泳世錦賽女子跳水三米板金銀牌&#xff1b;3、九省份保險業已賠付暴雨災害損失5.2億元&am…

wxPython 實踐(六)對話框

wxPython 實踐&#xff08;一&#xff09;概述 wxPython 實踐&#xff08;二&#xff09;基礎控件 wxPython 實踐&#xff08;三&#xff09;頁面布局 wxPython 實踐&#xff08;四&#xff09;事件響應 wxPython 實踐&#xff08;五&#xff09;高級控件 wxPython 實踐&#x…