跳到主要內容

即將到來的 /usr 合併

Chakra 在不久之後會有一次將 /lib、/lib64、/usr/lib64 合併到 /usr/lib,/bin 合併到 /usr/bin,以及 /sbin 合併到 /usr/sbin 的大更新(目前位在供測試用的 [testing] 套件庫中),您將會需要進行下列步驟以正確的更新:

驗證

此次的更新包含了新版本的 Linux 核心及 GNU C 函式庫,目前(到編寫這篇文章為止)的版本為 glibc-2.20-4及 linux-3.16.4-1
請以 pacman -Si glibcpacman -Si linux 來觀看套件庫中的版本,此次更新到達穩定套件庫時至少會有與此相同或更新的版本,如果沒有,則您必須等待您的套件庫同步完成。
注意!一旦您決定進行以下的步驟,就請確認每一個步驟都完成了,否則您將會處於無法開機的狀態。
警告絕對不要在這次的更新中使用 --force 參數。

準備

當您利用 pacman -Syu 更新 Chakra 時,您非常有可能會看到 /bin、/sbin、/lib、/lib64與 /usr/lib64的衝突。在您開始之前,請確認您是使用 root 身份來操作 Shell,sudo 在此次的更新中可能會有問題。

檢查殘留下來的檔案

您必須移除以下的兩套檔案:
1.所有在 /lib、/usr/lib64、/lib64、/bin、/sbin 中的不屬於任何軟體包的檔案,您可以透過以下指令來獲取那些檔案的列表:
find /lib /lib64 /usr/lib64 /bin /sbin -exec pacman -Qoq -- {} + > /dev/null
這個命令會搜尋並顯示您在這些目錄下所有的檔案,並可能會顯示像是「錯誤:沒有軟體包擁有 /lib/modules/3.15.5-1-CHAKRA/misc」這樣的訊息。小心的檢查那些檔案並以 root  權限移除那些檔案。通常您會得到一個空白的輸出,或是有一些 VirtualBox 相關的核心模組遺留在 /lib/modules 中。
2.所有在 /lib、/usr/lib64、/lib64、/bin、/sbin 中的不被任何官方軟體包所擁有的檔案,您可以透過以下指令來獲取這些檔案的列表:
pacman -Qqo /bin /sbin /lib /lib64 /usr/lib64 | pacman -Qm -
移除(或是如果可以的話更新)所有上面那個指令所輸出的非官方軟體包,利用下面這個指令: pacman -R 軟體包名稱
如果您真的很需要以上這些軟體包,您也許可以考慮先移除,然後在完成以下的步驟後重新安裝。

更新

sudo su - (進入 root 使用者的 Shell)
pacman -Sy
pacman -Su --ignore glibc,lib32-gcc-libs,filesystem,bash
(此時,如果您仍有 /lib/modules 這個資料夾,請小心檢查裡面的檔案,如果裡面的檔案全部都是舊版核心的模組,您就可以利用 rm -rf /lib/modules 來移除)
pacman -Su --ignore filesystem,bash
pacman -Su --ignore filesystem
pacman -Su

小心的在像這樣的問題中回答 y:: 因為無法解決依賴關係,以下軟體包無法進行更新:
binutils gcc gcc-libs libtool
您想在本次更新中跳過上述軟體包嗎?[y/N] y


Linux 核心也被更新,depmod 和 mkinitcpio 在這時候會顯示一些錯誤訊息,因為正確的核心模組並沒有符號連結。這時候可以安全的忽略它們,但不要重新啟動,否則您的核心會無法開機。

注意:在更新的時候,pacman 可能會檢測到 /lib 的衝突,並顯示下列訊息:
錯誤:無法提交處理 (有衝突的文件)
glibc:/lib 已存在檔案系統中
發生錯誤,沒有軟體包被更新。


這表示您還有一些尚未處理的殘留檔案在/lib 目錄底下,請回到檢查殘留下來的檔案那裡重新檢查並修復它們。

結束

如果上面的更新結束後,每件事情都運作的很好,您的系統也仍可使用,這代表了您可以像平常一樣開啟新的行程。您可以利用下列指令來檢查是否更新成功:
ls -l /lib*
其輸出應該會像是(日期及時間會是您下指令的時間):
lrwxrwxrwx 1 root root 7 Sep 15 16:53 /lib -> usr/lib
lrwxrwxrwx 1 root root 7 Sep 15 16:53 /lib64 -> usr/lib

您仍然需要以重新安裝核心的方式來重建您的核心映像:
pacman -S linux
或是如果您使用的是 LTS 核心:
pacman -S linux-lts
這次 depmod 應該不會再顯示任何錯誤。
有些使用者回報了關於 GRUB 的錯誤,雖然這可能並不是與 glibc 的更新相關,因為這次更新也包含了新版的 GRUB 軟體包,也許您可以重新安裝 GRUB。 對於 GRUB 重新安裝的方法,請見 ArchWiki 中的 GRUB 條目

修正常見的錯誤


未在更新期間使用 root 使用者更新

這可能會造成一些問題,因為新的 bash 是位在 /usr/bin,但在 filesystem 軟體包中的新符號連結尚未被安裝。
在此例中,只要您還有終端機的視窗仍開著,您就可以利用以下指令進入 root shell:
su -s /usr/bin/bash -
然後,您應該可以繼續您的更新過程。

在更新後忘記重建核心

找到一個 Live USB 或 Live CD,在它開機後,按下 Ctrl + Alt + F1(或 F2~F6,取決於 Live 媒體上的系統) 切換到 tty,或是開啟一個終端機模擬器(像是 Konsole、GNOME 終端機、xterm 等),然後執行:
su -
或是
sudo su -
以切換到 root 帳號,您將會需要輸入密碼(通常這會留空或顯示在容易看到的地方,Chakra ISO 的 root 密碼是 root)。
然後您必須掛載您的硬碟,然後 chroot 到裡面以進行核心映像的重建。分割區號碼取決於您的分割區結構。假設您的根目錄位於 /dev/sda1。執行下列指令以設定一個可以 chroot 的掛載點。
mkdir /chakra_root
mount /dev/sda1 /chakra_root(掛載根目錄)
mount -o bind /dev /chakra_root/dev(掛載臨時檔案系統)
mount -o bind /tmp /chakra_root/tmp
mount -o bind /sys /chakra_root/sys
mount -o bind /proc /chakra_root/proc

如果您使用了一個分離的 /boot 分割區,您必須同時掛載它。如果您的電腦是使用 MBR,您可以使用 fdisk -l 來檢查您的分割區,GPT 的話則使用 gdisk。
設定完掛載點後,執行:
chroot /chakra_root
以進入 chroot。然後您就可以用上述的方法重建核心映像。

新聞來源:Usr Merge

留言

這個網誌中的熱門文章

使用MD5、SHA512等校驗碼檢查檔案是否正確

(2022.06.19更新) 許多自由軟體如 KaOS 會在網路上提供的安裝檔會附上 MD5、SHA1、SHA256  或 SHA512 校驗碼 (Checksums),這些校驗碼可以確認下載到的檔案是否跟原始提供檔案一樣,以免下載到被動過手腳的檔案。這篇文章我們將介紹如何在 KDE neon、Windows、macOS 上使用 MD5、SHA1、SHA256  或 SHA512 校驗碼方法。 #KDE neon 在 KDE neon、KaOS 以及其他各種 Linux 發行板可以透過圖形界面或文字界面方式確認校驗碼。首先介紹圖形界面的方法。 開啟 Dolphin檔案管理員,對要校驗的檔案按右鍵。選擇「屬性」(Properties)。 跳到「總和檢查碼」(Checksums)分頁,把網站上的校驗碼貼上方框。接者按下對應校驗碼的「計算」(Calculate)按鈕,會比對校驗碼是否完全相符。如果相符會如上圖顯示「總和檢查碼相符」(checksums match)。 接者介紹文字界面的方法。開啟 Kate 文字編輯器,請將開發者提供的校驗碼依照下列格式貼入 Kate 中: 校驗碼 要校驗的檔案名稱 範例如下: b0dff6f73cb797bbb62f03dd853ceee4  kaos-2021.01-x86_64.iso 接者儲存文字檔,請把這文字檔和要校驗的檔案放在同一個資料夾中。開啟 Konsole 終端機,輸入以下指令以比對出檔案校驗碼: MD5: md5sum -c /檔案路徑/校驗碼文字檔名 SHA1: sha1sum -c /檔案路徑/校驗碼文字檔名 SHA256: sha256sum -c /檔案路徑/校驗碼文字檔名 SHA512: sha512sum -c /檔案路徑/校驗碼文字檔名 以 SHA256 作為使用範例: [konqi@kde_neon~]$ sha256sum -c /home/konqi/sha256sum.txt kaos-2021.01-x86_64.iso: OK 當輸出「 kaos-2021.01-x86_64.iso: OK 」代表 kaos-2021.01-x86_64.iso 與檔案中校驗碼比對完全相符,可以確認這是正確檔案喔! #Windows Win

在KDE neon上使用Fcitx5輸入法

(2023.08.10更新) Fcitx 5 是 Fcitx 最新版本,一款在 Linux 上相當優秀的輸入法框架。提供多種中文輸入方式,包含注音、倉頡、嘸蝦米、拼音、鄭碼等,並且支援日文、韓文、越南文、泰文、法文、德文等多國語言輸入。以及支援各種方便的輸入功能如:正簡轉換、快速輸入、單字提示、Unicode 字元輸入等功能。 #安裝 Fcitx 5 首先說明如何安裝 Fcitx 5 框架的方法,請跟據你使用的 Linux 發行板依以下步驟安裝: * KDE neon、ubuntu : 1. 開啟 Konsole 終端機,輸入指令: sudo apt install fcitx5-frontend-gtk2 fcitx5-frontend-gtk3 fcitx5-frontend-qt5 kde-config-fcitx5 * Arch Linux : 1. 開啟 Konsole 終端機,輸入指令: sudo pacman -S fcitx5-im 安裝完成後,接者請開啟「系統設定」(System Settings)->「Input Devices」 -> 「Virtual Keyboard」,選擇「Fcitx 5」。 再來要啟動來 Fcitx 5。請從選單選擇「Fcitx 5」啟動。 #安裝各種語言輸入法 接者依據要輸入的語言,參考以下連結安裝各種語言輸入法: 中文: 注音、倉頡、嘸蝦米、拼音、鄭碼等中文輸入法 日文: Anthy、KKC、Mozc、SKK 韓文: Hangul 越南文: Unikey 德文: 鍵盤 - 德語 法文: 鍵盤 - 法語 俄文: 鍵盤 - 俄語 多種歐洲語文: 鍵盤 - 英語 (美式國際) #基本操作 這裡我們介紹 Fcitx 輸入法的基本操作方法。使用滑鼠對系統匣中的輸入法按右鍵,從跳出的右鍵選單選擇「輸入法」(Input Method),可從選單中選擇輸入法。 鍵盤操作方法: 中英輸入法切換:「Ctrl + 空白鍵」開啟關閉中文輸入法。 各種輸入法切換:「Ctrl + 左 shift」循環切換所有輸入法。 Fcitx 其他功能請參考以下的教學連結: - 快速輸入 - 單字提示 - Unicode 字元輸入 # KDE Plasm

在KDE neon安裝Fcitx5注音、嘸蝦米、拼音等中文輸入法

(2021.01.03更新) Fcitx 是一款相當優秀的輸入法框架,提供多種中文輸入法,包含注音、倉頡、嘸蝦米、拼音、鄭碼等。以及支援各種方便的輸入功能如:正簡轉換、快速輸入、單字提示、Unicode 字元輸入等功能。現在我們透過簡單的步驟在 KDE neon、ubuntu、Arch Linux 以及各種 Linux 發行板上安裝 Fcitx 中文輸入法吧! 首先說明如何安裝中文輸入法,如果還沒安裝 Fcitx 框架請參考 Fcitx 輸入法使用教學 安裝。接著依據你使用的 Linux 發行板進行安裝: * KDE neon、ubuntu ,開啟 Konsole,根據要安裝的輸入法輸入以下指令安裝 : 1.新酷音注音輸入法: sudo apt-get install fcitx5-chewing 2. 碼表輸入法: sudo apt-get install fcitx5-table-extra     提供:倉頡、鄭碼、行列、輕鬆、嘸蝦米輸入法              速成、五筆、筆順五碼、粵語拼音、廣東拼音、港式廣東話、吳語注音 3.拼音輸入法: sudo apt-get install fcitx5-chinese-addons 4.中州韻: sudo apt-get install fcitx5-rime * Arch Linux ,開啟 Konsole,根據要安裝的輸入法輸入以下指令安裝 : 1.新酷音注音輸入法: sudo pacman -S fcitx5-chewing 2. 碼表輸入法: sudo pacman -S fcitx5-table-extra     提供:倉頡、鄭碼、行列、輕鬆、嘸蝦米輸入法              速成、五筆、筆順五碼、粵語拼音、廣東拼音、港式廣東話、吳語注音 3.拼音輸入法: sudo pacman -S fcitx5-chinese-addons 4.中州韻: sudo pacman -S fcitx5-rime 安裝完成後,接下來要把新安裝的輸入法加入使用。 對系統匣的鍵盤圖示按右鍵,從跳出的右鍵選單選擇「設定」(configure)進入 Fcitx 設定,按下「新增輸入法」(Add Input Method)將新安裝的輸入法加入。接著說明各種輸入法的使用方法: