跳至內容

建議閱讀/給新用户的關於如何不去弄壞 Arch Linux 系統的建議

本頁使用了標題或全文手工轉換
出自 Arch Linux 中文维基

原始頁面來自 Debian Wiki

Arch Linux 是滾動更新的系統。從單獨的時刻上去看,其即使可能會在更新後出現問題,但由於滾動更新,這些問題也可以被快速修復,因而總體上依然穩定可靠。除去上游引入的問題,用户手上持有的系統最高權限——root 權限——也通常是導致系統損壞的導火索。背離通常的操作手段導致系統故障是正常的,因而我們在此處列出常見的導致系統故障的操作,以期幫助大家避免這些問題。不過,若有充分的知識和謹慎的操作,即使出了問題,通常也是可以妥當解決的。

在此之前,需要知道一點的是,來自官方倉庫的軟件包受到官方支援,且來自 core 倉庫的軟件包更是會先進行嚴格的審核。而在其他系統中,你可能會從各個網站下載安裝包,但無論在哪個系統上,這通常都伴隨風險。在 Arch Linux 上,還有很多第三方軟件的安裝腳本來自 AUR。這些腳本相較於用户手動使用命令編譯安裝來說,可以讓透過腳本安裝的軟件受到本系統的包管理軟件,pacman 管理,這可以極大的減小自行安裝與包管理衝突的風險,但這些腳本亦可能包含惡意代碼(這曾經發生過,雖然不常見)。因此,請儘量選用來自官方倉庫的軟件包,並在使用來自 AUR 的安裝腳本前對它們做仔細檢查(比如檢查包含的網址,可能包含的破壞性命令等)。

中文用户可能會選用來自非官方用户倉庫[archlinuxcn] 的軟件包。同樣,你也應該謹慎選用這些軟件包,在非官方軟件包出問題時也請向相應的人員報告問題。

注意:Arch Linux 32Arch Linux ARM基於 Arch 的發行版不被官方支援。

現在,讓我們開始吧。

數據無價,分區操作需謹慎[編輯 | 編輯原始碼]

根據安裝指南#分區方案範例,您可能會將除 /bootswap 之外的所有系統所需內容(這包括 /home,您的很多個人數據會儲存在這裏)放在一個單獨的分區。這樣的配置對新用户相對友好,但是在您進行某些可能會損害數據的操作(如調整磁碟分區大小)時,由於個人數據和系統檔案存放在同一個分區內,若是因為相關操作導致分區損毀,則您很可能會同時失去珍貴的個人數據。

因此,分區操作需謹慎,在安裝系統的時候就應當通盤考慮如何分配磁碟,因為稍後再修改所要花費的精力會更大。比如,參考「不要把雞蛋放在同一個籃子裏」的道理,您可以在安裝時,將一些目錄(如 /home)作為單獨的掛載點,將這些目錄下的內容放在其他分區。這樣,即使系統分區出了問題,您的數據也在其他分區內完好無損,並且您可以快速恢復您的工作環境。具體請參閱 fstab

不要混用測試倉庫[編輯 | 編輯原始碼]

如果你使用桌面環境,你有可能想提前嘗試測試版本的桌面環境,比如 KDEGNOME,並相應啟用 gnome-unstablekde-unstable。需要注意的是,這些倉庫需要同時與測試倉庫,也就是 core-testingextra-testing 同時啟用(如果有啟用更多的官方倉庫也要啟用相應的測試倉庫),否則可能導致部分升級,簡單來說就是新舊軟件包不相容的情況。要提前嘗試,就都要提前嘗試。一旦產生錯誤,則必須儘快解決問題。

通常,只要 pacman 可以執行,完整地啟用測試倉庫後,進行 pacman -Syu 就能修復這些問題。

不要「下載」顯示卡驅動[編輯 | 編輯原始碼]

顯示卡製造商的官網可能會提供顯示卡驅動的安裝腳本,但是也請用來自軟件庫的驅動軟件包。Arch Linux 的軟件庫已經(基本上)提供了這些驅動,並且可以伴隨 Linux 內核升級而升級,這比單獨的安裝腳本要可靠和安全得多。通常情況下,查閱 OpenGLVulkan 以及 VA-API 這三個 wiki 頁面足以引導你安裝並配置好執行桌面所需的顯示卡驅動。

即使是臭名昭著的 NVIDIA,近年來的表現也在逐漸穩定。要查閱與具體硬件品牌相關的更多資訊,請參考 NVIDIAAMDGPUXorg#AMDIntel 圖形處理器等文。本 wiki 同時提供其他軟件在 Arch Linux 上的使用說明,其中也可能包含相關軟件在與特定顯示卡配合使用時需要單獨採取的措施。

小心 make install 和其他類似命令[編輯 | 編輯原始碼]

pacman 包管理透過統一的方式管理系統軟件及其檔案,但 make installninja install 等安裝的檔案不受 pacman 管理,且可能與 pacman 管理的檔案相衝突。同樣,如果需要解除安裝由這些命令安裝的檔案,也需要花費一番功夫。

同樣,直接執行這些命令會需要你自行管理這些軟件的升級等,事實上十分不便。來自 AUR 的安裝腳本實際上採用與軟件庫打包相一致的過程,因而這樣安裝的軟件受到pacman管理。在了解相應風險後,您也可以使用 AUR 助手幫助你升級來自 AUR 的軟件包。如果AUR也實在沒有,也可以考慮自己建立軟件包(當然這並不輕鬆),讓 pacman 管理。還有一些常見的類似建議列在下方。

不要直接 pip install[編輯 | 編輯原始碼]

Python 有相當多的庫並不在 Arch Linux 倉庫內,如果你不想使用 Arch 組建系統親自打包 Python 程式的話,使用 pip install 是個折中的辦法。但是,請一定在 venv(或類似的虛擬環境)中執行。如果你 # pip install,那麼你安裝的檔案會與 pacman 管理的檔案產生衝突。然而,即使使用 pip install --user 將程式安裝到 ~/.local 下,也可能安裝了與系統軟件包重複但版本不同的庫,從而導致系統上安裝的某些依賴該 Python 庫的程式因庫版本不正確而出錯。

如果你需要用的 Python 程式支援用命令列啟動執行,而無需在 Python 代碼中 import 調用的話,推薦使用 python-pipx 來安裝它。pipx 會自動為你建立 venv,並自動在 venv 中安裝你需要的程式。

有時候一些 Python 程式會依賴一些重量級庫,比如 PyQt/PySide/PyGObject 等,如果在 venv 這樣的隔離環境中安裝則需要在 venv 中安裝所需的 Qt/glib 庫,這通常無法與系統上的其它軟件良好集成。這種時候,你可以用 python -m venv --system-site-packages 來建立 venv 並在其中安裝你需要的軟件包。這樣建立的 venv 不是與系統環境完全隔離的,venv 之內的 Python 能夠匯入系統範圍安裝的包,而系統環境的包則看不到 venv 內的包,因此不會干擾系統軟件包正常工作,相當於獲得了 pip install --user 的優點而規避了它的缺點。

不要預設啟用 anaconda 環境[編輯 | 編輯原始碼]

anaconda 是個不錯的管理 Python 軟件的方式。然而,它內建了包括 curl 和 ncurses 在內的許多庫檔案,其版本可能與系統所需要的版本衝突。因此,請不要預設啟用 anaconda 環境,僅在需要使用的時候啟用。

不要盲從教學[編輯 | 編輯原始碼]

標題不是在說不要看任何教學,而是說,應該同時比對幾份同主題的教學(對於 ArchWiki,則也可以是中英文,甚至其他語言),以及參考說明文件。同樣,教學也有時效性,如果是五年前的教學,可能現在已經完全不適用。

但,無論是在跟隨教學之前,還是在對比幾份教學之前,都應該搞清楚教學中的命令到底會做出哪些操作。這樣可能會幫助你及時發現錯誤,當然,即使未能發現,也能更迅速地幫助你恢復系統正常。

除了 ArchWiki 外,man 命令等是已經存在於你系統上的文件。這些也是參考來源。

不要盲目照抄設定檔與腳本[編輯 | 編輯原始碼]

盲目照抄設定檔和腳本對於系統的危害是深遠且多方面的。

每個系統或應用都有其獨特的執行環境和需求。盲目照抄設定檔、腳本,往往忽略了這些差異,可能導致配置不相容,進而引發系統錯誤或崩潰。

當您使用別人提供的腳本時,應當知道它是用來做什麼的、它依賴什麼軟件包、它應當被何 shell 執行等。

點檔案一文中提到的其他用户提供的設定檔、各大代碼託管平台上的用户點檔案倉庫以及 AUR 中類似於 ml4w-hyprlandAUR 的包,都是針對那些用户自身,而非您的習慣或裝置來設計的。比如說,假如您喜歡某人的終端增強配置,就草率地將其 ~/.bashrc 直接抄進了您的 ~/.config/fish/config.fish,這樣的話,出現問題時,無論是您要向社區詢問,還是他人試圖解決您的問題,都會因為這其中積累的無數個「未知」,給您自己和社區帶來莫大的麻煩。

移除軟件包需謹慎[編輯 | 編輯原始碼]

軟件包之間有依賴關係,也就是一個軟件包必須和另一些軟件包一起存在。因此,移除一個軟件包可能會需要相關的其他軟件包也被一同移除。

移除軟件包前,pacman 會顯示要移除的包的列表。一定要仔細檢視每個即將被刪除的包,它們有的可能是你仍需要使用的軟件包。如果不清楚,除了詢問其他人以外,你還可以透過 pacman 的查詢命令來檢視每個軟件包的簡介與相關資訊。

記得自己做過什麼[編輯 | 編輯原始碼]

記得自己做過什麼在出問題的時候可以幫助你或者是讓其他人幫你快速解決問題。比如,改動設定檔時,也許可以原地留一下註解和日期,標註原因,之類的。本文先前所提及的「不要照抄其他設定檔」也是同理,充分把握自己的系統這件事對解決之後可能發生的問題而言十分重要。

總的來說,要維持 Arch Linux 系統的穩定,你自然要付出一定的精力。

謹慎對待 LLM 給出的內容[編輯 | 編輯原始碼]

LLM,大型語言模型(也就是 OpenAI 的 ChatGPT,Anthropic 的 Claude,Google 的 Gemini,深度求索的 DeepSeek 等 「AI」),看似是人類可以向 AI 詢問任何問題,AI 就會給出看着非常可信的答案。有人可能會覺得如獲至寶,看到有人問問題就把問題丟給它們問,再把回答隨便貼上去。

但是,現階段的通用大型語言模型,即便是在有聯網工具能力的情況下(比如 ChatGPT 的搜尋模式),也只能基本確保它們組出的是語法語氣沒有問題的句子,而不是事實正確的句子。即便是現在推理用的大模型,也並沒有對現實的認知能力,自然沒有其他社區成員的經驗,詢問它們是不大可能獲得諸如「你電腦在更新的時候大寫鎖定鍵忽然閃燈,是因為閉源 NVIDIA 驅動和內核互作導致更新時內核崩潰,根據你的顯示卡型號,你應該換用 nvidia-open 這個包」之類的詳細結果的。

好吧,LLM 似乎確實不適合詢問莫名其妙的疑難雜症——那如果是讓它幫我寫一個特定用途的小工具呢?不是說它們很擅長寫電腦程式嗎?

在你準備問出更多問題之前,再次強調一遍:現階段的 AI 沒有對現實的認知能力,它不能保證自己寫的符合你的要求,甚至可能因為陰差陽錯寫出有害的東西出來(雖然更多時候是前者)。

因此,總結一下:如果一段文字看着是 AI 生成的,或者你打算向 AI 問問題,請先認為你看到的內容一個字都不能信。也請不要把「它說的對不對啊」的工作推給別人,因為比起對 LLM 縫縫補補,人類自己早就能把問題解決掉了。

尋求他人幫助[編輯 | 編輯原始碼]

Arch Linux 用户通常對 Arch Linux 上的問題更為熟悉。在遵循行為準則的前提下,向官方社區和非官方的國際社區(中文用户可以看看 Arch Linux 中文社區)通常是個好主意。

行為準則#常識有言:

  • 使用 Arch Linux,先要接受 Arch 之道
  • 先看文件,搜尋網站,做好功課,再行提問
  • 尋求幫助,耐心委婉
  • 樂於奉獻,止於損害

遵循基本前提,提供儘可能多的細節,保持耐心多等待,不要宣泄情緒。

當然,每個社區都會有自己的建議。但通常,使用即時通訊軟件時,不要頻繁換行發言,儘可能一次發完。上載日誌建議使用外部網站(比如 Pastebin 和每個群組自行設定的類 Pastebin 網站),並且注意刪掉私人資訊。詢問問題時待在有問題的裝置前,不要「離線提問」,避免在他人給出建議的時候你卻「暫時給不出日誌」又或是「暫時摸不到電腦」而消耗其他社區用户的耐心。

最後,祝你的 Arch Linux 使用之旅順利且愉快!