Linux

哪種策略最適合像我這樣具有科學背景的使用者?(Linux 桌面、雙啟動、虛擬化)/(Fedora?Arch?Win?)

  • March 5, 2014

首先,

  1. 我有科學背景,我的專業工作涉及科學計算:大量 Python、Matlab、C/C++、TeX、Git、Java 應用程序和一些 Julia、並行計算、Web 開發和其他日常工作。
  2. 我喜歡命令行和腳本。我喜歡 Arch 聲稱的簡單明了。但我擔心這會佔用我很多時間,我不知道這種小小的快樂是否值得。
  3. 自 2003 年以來我一直在使用 Linux,但是我只是一個中級使用者(最多),所以我絕對不是管理員或類似的東西。不幸的是,在過去的 3 年裡我一直遠離 Linux,現在我很想回來熟悉一下。
  4. 穩定是必須具備的功能,因為除了維護或調整作業系統之外,我通常還參與其他事情。但我喜歡自定義作業系統的能力。對我來說穩定並不意味著沒有掛起或沒有重啟。我想要一個我可以依賴一段時間的解決方案,一個作業系統更像是一個工具而不是一個固定的修復目標的解決方案(我知道這非常基於我的經驗……)。我想安裝我的作業系統一次,偶爾配置一次,然後更新它,而不會破壞兼容性或廣泛的錯誤或問題。

我對 Windows 很滿意,我什至採用了 PowerShell+Cygwin 和許多類似 unix 的解決方案,Python、TeXLive、Git、Java 都在工作(但不如 Linux 乾淨)我什至“推動”自己使用一些用於 power-shell 命令的 C#(類似於 bash 腳本,順便說一句,我不喜歡 .NET)。事實上,Windows 正在完成這項工作,但我喜歡第一手體驗和更好的解決方案。我認為通過一點努力/時間來獲得更多的功能/靈活性/清晰的維護可能是值得的。

這些不同甚至矛盾的願望讓我很難為我的新機器決定一個好的策略。我喜歡回到 Linux 世界,但我害怕在那里花很多時間。而且由於我已經離開一段時間了,所以我沒有足夠的資訊來了解 Linux 桌面的目前狀況。目前我有這些選項:

A. 使用 Linux 和 Windows 作為雙啟動並排。B. 使用 Windows(作為主機)並在虛擬機上安裝 Linux C. 使用 Windows,忘記 Linux 並在 Windows 世界中嘗試等效的解決方案和配置。

關於發行版我也有同樣的衝突,我主要是 Fedora 使用者…. Ubuntu?我還有很多疑問…Debian 似乎離邊緣還很遠,sid?我不知道….我喜歡 Arch 簡單但從未嘗試過的哲學(我再次害怕可能的時間,真的很耗時嗎?),…

所以請幫我做決定,你有什麼建議?

ps 我過去在虛擬機方面沒有很好的經驗,很多問題,現在可能會改變,但目前我認為在虛擬機中安裝 Linux 並不是一個好主意。

謝謝

更新:(根據金發姑娘的評論)

我的主要研究背景是什麼?

我是一名博士生,我正在研究數字信號處理(EECS 系:通信系統)我的大部分工作主要是數學、模擬(數值計算)和出版(TeX 和矢量圖形)。

我的主要開發/模擬/應用環境是:

  • MATLAB
  • Python
  • C/C++
  • 特克斯
  • 研究套件,例如(Docear based on Java, Zotero, ….)
  • PDF格式
  • 吉特

我也有一些興趣和愛好,例如 Julia、Java、Web 開發(Drupal、HTML/CSS、XAMP、…)、…

為什麼我對 Windows 不完全滿意?

我以前體驗過Linux。

  1. Python、TeXLive、Java 甚至 MATLAB 在 Linux 中的性能都比 windows 好得多。
  2. 我喜歡並且我需要許多批處理和自動化任務,這些任務在 Linux 世界中可以做得更好。(大多數應用程序都有命令行界面,python 腳本和 bash 腳本很容易開發。在這種情況下,Windows 根本無法比擬,即使它們有前途的基於對象的 PowerShell,只是它不是 POSIX)
  3. 我想要一個簡化和開放的策略來維護我的作業系統(例如,擁有配置文本文件而不是複雜的註冊和封閉配置)。我喜歡並且我想訪問我所有的操作系​​統角落。這提供了更好的維護以及調試和修復功能。
  4. 安全性(我厭倦了 AV、SandBoxes、VirtualEnvironments、Firewalls、ALETS ……)
  5. 我是一個極客,我很好奇!

Linux 在許多方面為我提供了更好的性能和維護。但我懷疑 Linux 的穩定性(正如我所提到的)。我在花時間定制我的作業系統、搜尋、詢問和學習方面沒有問題,但我懷疑 Linux 作業系統的穩定性以及桌面使用者的頻繁更新和配置(Linux 伺服器的穩定性很好,可以)。

關於發行版

我同意你關於發行版的看法。它們之間沒有太大區別,但以帶有 Fedora 的 Arch-Linux 為例。從維護的角度來看存在很大差異(看起來,我對 Arch 沒有任何經驗,這就是我在這裡問的原因)。

為你的 Linux 投入時間

正如我所說,我對 Linux 的使用者界面、命令行或手冊等沒有任何問題。這些都是我真正喜歡的東西。我害怕在修復 Buggy 和 Broken Packages/OS 上花費大量時間。考慮這個例子:我已經安裝了 Fedora (SUSE),我想將 KDE(Gnome) 作為我的主要 DE,但是預編譯包中提供的預設配置非常有問題並且容易失敗。好的,這是 Linux,它幾乎是 POSIX,我可以做很多事情,等等等等,我同意!但我不喜歡在日常維護工作的這些部分投入“大量”時間。好的,現在我的 Linux 作業系統執行穩定,我正忙於我的軟體和日常工作,現在我想將作業系統更新到較新的版本……例如,從 Fedora 20 到 Fedora 21,作業系統升級了,砰!很多包都不行 許多主要的作業系統功能都被破壞了,你必須花一兩天時間來解決所有這些問題。這只是一個場景,我要問的是:如今這種場景在 Linux 中發生的可能性有多大(對於中級使用者)?兩三年前,當我使用 Fedora 時,這很可能。

除了使用執行 linux 的電腦之外,您還沒有解釋您的實際目標是什麼——顯然您已經這樣做了大約 10 年。

老實說(因為這絕對是一個“基於意見”的問題),所有對不同發行版的大驚小怪都是荒謬的。這並不是說它們在表面上沒有區別,但它們並沒有本質上的不同。最重要的區別是最不可變的,通常包括初始化系統,幾乎總是包管理系統。

您稍微提到了程式類型的活動,但也提到了您對在其中投入過多時間持謹慎態度的事實。如果您主要使用電腦是為了在某些領域提高工作效率(同樣,您對此沒有說任何話)1,請盡可能避免程式,而是專注於使用現有的軟體來幫助您成為富有成效的。如果你需要做大量的文字處理,你想磨練你對文字處理器的熟練程度,而不是程式。

我喜歡回到 Linux 世界,但我害怕在那里花很多時間。

Linux 不是一種快餐文化。我這樣說不是為了詆毀快餐。每個人都喜歡吃,但不是每個人都喜歡做飯。同樣,大多數人都喜歡聽某種音樂,但是當事關重大時,大多數人實際上並不喜歡製作音樂。

烹飪好或演奏樂器需要大量的時間投資。沒有必要每個人都這樣做。如果您已經對 Windows 感到滿意和滿意,我的建議是堅持下去。很明顯,您已經使用 linux 很長時間了,但從未真正接受過它。

B. 使用 Windows(作為主機)並在虛擬機上安裝 Linux C.

請不。同樣,您還沒有解釋這樣做的可能目的是什麼,但是維護一個 VM 映像只是為了讓您可以使用 OS 不管做什麼通用計算任務,這不僅是荒謬的,而且完全是荒謬的。VM 可用於測試、仿真和遏制。將它們用作不需要 VM的地方來“做一些事情” (而且很可能會因為在 VM 中做這件事而受到負面影響和復雜化),就像在車道上開你的車,這樣你就可以聽 CD播放器。


1.您確實提到了“科學背景”,但您沒有提到這如何涉及電腦的使用。你用它來做科學嗎?什麼樣的科學?如何?等等。


$$ Post OP Revision $$

好的,現在我們有一些更具體的事情要處理。您的主要應用程序列表很簡單:MATLAB、Python、C/C++、TeX、PDF、Git 和(我的推斷)Java。這些在任何主流 linux 變體上都同樣適用。根本不可能有人(理性地)聲稱 Java 或 Tex 或任何其他這些東西在一個發行版上比另一個發行版上執行得更好。但請繼續閱讀。

在這個意義上它們都是等價的部分原因是它們都使用相同的核心(從技術上講,“Linux”只是核心)和相同的基本使用者空間(我主要指的是 C 庫,即一切的關鍵部分)。他們每個人都單獨配置和編譯核心,甚至維護自己的更新檔集,但這些並不重要。例如,如果更新檔確實在硬體工作和不工作之間產生了差異,那最終會出現在原始原始碼樹中;它不是只有一個發行版提供的東西。

如果您確實對配置的發行版核心有問題,那麼解決方案是在找到可以解決的發行版之前不要繼續切換發行版。解決方案是自己配置和編譯核心。第一次這樣做會很乏味,但這並不超出有文化的成人使用者的能力範圍。您可以使用原版原始碼,也可以使用發行版提供的原始碼包。

“研究套件”並不是我很了解的東西,但我認為同樣的邏輯也適用(它們在任何發行版上都同樣適用),特別是如果它們是基於 Java 的。1 有一個Scientific Linux發行版,它是 Redhat 的重新打包,很像 CentOS。它由 CERN 維護和使用,因此可能有效,但僅僅因為它被稱為“科學”並不一定意味著它對您的目的會變得更好或更糟。CERN 這樣做的原因並不是因為他們需要執行在 Ubuntu 等上不能很好執行的軟體。他們這樣做:

  • 所以他們可以有一個標準化的平台。
  • 所以他們可以把關這個標準化的平台。例如,他們可能只是在某個時候決定使用 CentOS。但是,有必要使系統保持最新,大概是並行的。假設有一天,定期發行版更新引入了一些小問題,導致某人錯過了他們在粒子加速器上的一天——不開心的科學家!維護他們自己的發行版並不能保證這一點(當然沒有這樣的保證),但它確實將權力掌握在他們手中。

也就是說,與 Redhat 平行的發行版往往落後於時代一年左右。這不一定是壞事,理由是穩定性,但對於獨立使用者來說,這有點毫無意義。一般來說,系統會隨著時間的推移而改進,在你擁有並為你操作的單台電腦的情況下,任何因離現在還不夠遠而導致的問題都可能很容易被糾正(打個比方,你總是可以必要時後退一步)。

我對 Linux 的使用者界面、命令行或手冊等沒有任何問題。這些都是我真正喜歡的東西。我害怕在修復錯誤和損壞的包/作業系統上花費大量時間……

自上個世紀以來,我一直是 linux 使用者。在過去的六年左右,我一直在 linux 系統上全職工作,主要是出於選擇,主要從事程式。我目前選擇的發行版是 Fedora,也就是說,如果有人問我想在伺服器上設置什麼,我會說 Fedora。但通常他們真正說的是他們已經用 Ubuntu 或 Debian 設置了伺服器,哈哈。我對此非常滿意,並且不認為“Fedora vs. Ubuntu”(例如)是一個嚴肅的論點。我還為自己嘗試了各種其他發行版,特別是 Gentoo,我多年來一直是我的主要發行版。

我提到所有這些只是為了表明我沒有強烈的偏見,而且我至少在 Fedora、Debian 和 Ubuntu 方面有很多經驗。儘管在過去十年中它在使用者友好性方面取得了很大進步,但我仍然不向其他人推薦 linux(即使喜歡它並且拒絕使用其他任何東西來進行嚴肅的工作),原因很簡單不想听到他們的回音,結果是多麼令人頭疼。當代的 linux 就是這樣,而我認為的兩個閃光特徵——異構性和透明性——有一個副作用,即,與 OSX 相比,有效使用它需要更高程度的技術熟練程度。

這意味著,如果你想有效地使用它,你可能需要比使用更主流的作業系統花費更多的時間。在這個持續的過程中,毫無疑問,你會遇到可笑的令人沮喪的障礙。根據我的經驗,這永遠不會結束,但我確信我的耐心和解決問題的能力(在這種情況下)已經提高了。解決問題的一部分是正確辨識它們,所以讓我們檢查一下您對“修復錯誤和損壞的包裹”的抱怨以及它浪費的時間。

這類投訴幾乎總是歸結為使用者的無知和困惑。在我與系統搏鬥的成千上萬個小時中,99% 的時間都是必要的,因為我必須學習一些東西,也許 1% 是因為真正的缺陷。當然,尤其是在最初的幾年裡,我並不總是這樣看。了解差異的一個好方法是在您認為確實是問題時送出錯誤報告,呵呵。是的,您必須在某個地方創建一個帳戶並回復電子郵件,但如果您是認真的,您不妨這樣做。

在 linux 世界中,使用者的困惑通常最終在錯誤報告中得到解決的部分原因是,與商業產品不同,該軟體的作者可能沒有太多動力讓您使用或理解它。2 如果您在使用它時遇到問題,那麼對他們來說根本就沒有任何理由。某些類型的理論家會爭辯說,這肯定會導致劣質產品;IMO 它實際上產生了一個優越的結果,這又回到了為什麼我喜歡 linux 但不向其他人推薦它:我不想要一個滿足最低公分母的產品. 我認為我 74 歲、技術上無能的絕望母親喜歡她的 iPhone 真是太好了。但是使它對她有用的東西使它對我非常無用。這就是野獸的本性。

因為這個linux有時看起來有點“刻薄”。就像,這是一個看起來很棒的系統,具有所有這些潛力等等,但我不得不浪費一天的時間試圖弄清楚如何配置我的桌面? 我去過那裡,我想追捕並扼殺我認為有責任的人。他們怎麼可以這麼冷酷無情?為什麼他們不能以明顯(對我……)的方式使這更容易?至少有一些更好的文件!

部分問題在於資源。開發 FOSS 軟體的人通常沒有太多或任何預算。他們不能用完並聘請技術作家團隊來記錄產品,可悲的是,這不是人們熱衷於自願做的事情:他們想要編碼。找到好的文件記錄員可能比找到好的程序員更難。當你沒有得到報酬時,它只是沒有同樣意義上的回報。

IMO,linux是技術人員為技術人員提供的平台(這顯然是感興趣的部分原因)。公平地說,有很多努力,特別是 GNU 和 Canonical,使其成為主流作業系統的替代品,讓世界各地的人們普遍接受,在這些地區,每隔幾年向微軟或蘋果公司支付數百美元是一件很困難的事情。嚴重的問題。這很棒,但它仍然主要是技術人員的技術平台。

所以,回到一些絆腳石:不是每個人都關心免費(不像啤酒那樣)開源軟體的理想,從最終使用者的角度來看,很容易將系統視為本質上與專有軟體相同的東西作業系統。這是一個錯誤,不是因為我認為你需要關心 FOSS 意識形態,而是因為在歡迎任何人貢獻的情況下存在一些實質性的務實差異(注意,這不是被認真對待的同義詞;這取決於什麼您實際上是提出來的)並且(正如已經解釋過的)沒有人真的有義務向使用者或任何其他特定權限回答。“linux 世界”在很多方面都是無政府主義的(在哲學意義上,而不是口語中的“混亂”),除了許多主要的組織(例如 GNU、Redhat、Cannonical)是規範的層次結構。

同樣,我並不是說您需要認真對待任何特定類型的意識形態等。我指出這一點是因為理解它在實用上很有用。 *作為 linux 使用者,與大型專有作業系統的普通使用者相比,在很大程度上是項目的一部分。*這就是為什麼像錯誤報告這樣的東西很重要的原因,儘管同樣不幸的是,很多關鍵的互動最終都會發生。當然,在這裡做會更好!

我也不是說你是“項目的一部分”,因為我認為社區意識是一件好事,或者因為 linux 極客都是秘密(或不那麼秘密)嬉皮士,或者因為它可能是一個很好的行銷口號。我這麼說是因為該項目需要工作,如果你想從實際中獲得最大的體驗,你需要將自己視為該工作的一部分(而不是作為它的消費者)。

或者你可以找一堵牆,用頭撞它。老實說,沒有人在乎。這就是自由。

我已經安裝了 Fedora (SUSE),我想將 KDE(Gnome) 作為我的主要 DE,但是預編譯包中提供的預設配置非常有問題並且容易失敗

你指的是你做了一些程式,所以我相信你很熟悉尋求幫助的新手會說“我的編譯器的 std::string 不能正常工作!”這樣的情況。我花了很多時間幫助人們解決程式問題和抱怨編譯器一定是錯誤的等等,幾乎總是(如,再次超過 99%)錯誤。

就像核心問題一樣,解決配置問題通常不是通過切換發行版來實現的,而是通過更改配置來解決。意思是,您必須在我已經描述的上下文中了解它。你對這所花費的時間表達了很多挫敗感——每個人都有這種感覺,但那是野獸的本性。它不是通過一系列承諾向您出售的產品,並且(再次)以這種方式接近它無濟於事。出於沮喪而切換發行版就是放棄。我已經做到了,從長遠來看,我認為它除了緩解對讓你陷入這種境地的 __ ing __ 頭的一時憤怒之外,並沒有太大的作用。最終你必須坐下來接受這一點,如果你想按照自己的方式做事你可能不得不自己做

好的!所以這裡有幾點建議:

  • **軟呢帽。**我的最愛,正如我所說,但你似乎有一些不好的經歷。Fedora/Redhat 與 Ubuntu/Canonical 的不同之處在於它們將資源更少地集中在桌面上——例如,與Unity沒有相似之處。Fedora 往往是最新的發行版(但正如所討論的,下游 RHEL 和衍生產品並非如此)。
  • **Ubuntu。**有意地,這可能是最傳統的使用者友好發行版,並且毫不奇怪,最受歡迎。Ubuntu 通常或多或少地保持與 Fedora 一樣的最新狀態,這可能由於它與更保守的 Debian 的關係而變得複雜。
  • **拱。**我只在短時間內嘗試了 Arch,但從其他人那裡得到了長期穩定的信任。我推薦這個的原因是因為我認為這對我來說是一次很棒的經歷,如果它早在幾年前就存在的話。更多地動手,這似乎是(必須)學習你可能會避免的東西的好方法。所以,這可能意味著更多的挫敗感;希望我已經指出,直面這些問題需要時間,但可能會讓你更快樂。也許不是今天下午晚些時候,但最終。

我沒有在這裡遺漏其他發行版,因為我認為它們很爛,等等。例如,我每天都在使用 Debian,並且與上述任何一個方面都沒有嚴重的問題。但這是我的前三項建議。

你是一名認真使用電腦工作的博士生。給定無限的時間,大多數人都想做很多他們在現實中沒有時間做的事情。3 這就是生活。我認為你應該繼續使用 linux,但你顯然需要平衡這方面的需求和你的學術義務。 *認識到你沒有時間做的事情比假裝你可以在沒有足夠時間的情況下正確完成這些事情要好,*這就是為什麼我最初建議您最好還是堅持使用 Windows。沮喪是自然的,但哀嘆這些事實並不能改變它們:有些事情只需要認真的時間和精力,這就是為什麼我最初說你選擇的發行版不會有太大的不同。他們仍然是 linux,而 linux 是一個非常嚴重的野獸 :]


  1. 值得注意的是,您並不局限於 java 發行版。如果您願意或需要,您可以安裝最新的 Oracle 並配置系統以使用它。

  2. 但他們確實有解決錯誤報告的真正動機!請注意,除非您真的相信存在錯誤,否則我不建議將其作為錯誤開發人員的一種方式。

  3. 還記得我最初說過大多數人喜歡美食和音樂,但不一定喜歡烹飪和演奏樂器嗎?這是因為他們是凡人;)

引用自:https://unix.stackexchange.com/questions/117836