跳到主要內容

即將到來的 /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

留言

這個網誌中的熱門文章

Krita 自由的專業繪圖軟體

Krita 是一套自由的數位繪圖與影像處理軟體。提供大量的擬真筆刷(如色鉛筆、油畫、水彩等)、平滑的繪圖板壓感反應、直覺化操作、以及各種特效與濾鏡等多樣化的影像處理功能。

Krita 已經被許多畫家採用進行創作(如 David RevoyRamon Miranda等),你可以從 Krita 網站上找到這些畫家的採訪。此外巴黎第八大學也選擇使用 Krita 取代 Photoshop 作為教學使用。目前 Krita 支援 Linux、Windows、Mac 等作業系統。

MuseScore 樂譜製作教學

MuseScore 是一款樂譜編輯軟體。支援使用滑鼠或 MIDI 鍵盤輸入音符到五線譜頁面上,並且可以即時播放樂譜。除了可以將樂譜輸出成 PDF、MusicXML、Postscript、PNG、SVG 格式。MuseScore 也可以將編曲內容輸出成音樂格式如 midi、wave、flac、ogg。並且 MuseScore 支援 Linux、Windows、Mac 等多種作業系統。

這篇文章將介紹如何使用 MuseScore 製作樂譜,以及在樂譜上加上歌詞。

安裝 MuseScore

* ChakraArch Linux 請從以下二種方法選擇一種安裝
   1. 開啟 Octopi 選擇 musescore 安裝
  2. 開啟 Konsole,輸入指令:sudo pacman -S musescore

Windows & macOS:請從下載頁面下載安裝檔安裝。

UbuntuDebian 、OpenSUSEFedora 等 Linux 發行板:請從下載頁面下載 Appimage 檔直接執行即可使用。

Chakra Linux 安裝 Fcitx 中文輸入法教學

Fcitx 是一款相當優秀的輸入法框架。提供多種中文輸入法,包含注音、倉頡、嘸蝦米、拼音、鄭碼等。以及支援各種方便的輸入功能如:正簡轉換、快速輸入、單字提示、Unicode 字元輸入等功能。

這篇文章會介紹如何在 Chakra Linux 上安裝中文輸入法。 Fcitx 使用與設定請參考 Fcitx 輸入法使用教學

支援設定

在安裝中文輸入法前需要先作一些設定,否則可能會無法輸入正常中文。請開啟 Kate 文字編輯器輸入以下內容:

    export QT_IM_MODULE=fcitx
    export GTK_IM_MODULE=fcitx
    export XMODIFIERS="@im=fcitx"

接者將檔案儲存在家目錄,檔名輸入 .xprofile。

注音輸入法