哪种策略最适合像我这样具有科学背景的用户?(Linux 桌面、双启动、虚拟化)/(Fedora?Arch?Win?)

Sdd*_*ddS 1 linux fedora arch-linux virtual-machine

首先,

  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 干净)我什至“推动”自己使用一些 C# 用于 power-shell command-lets(类似于 bash 脚本,顺便说一句,我不喜欢 .NET)。事实上,Windows 正在做这项工作,但我喜欢第一手经验和更好的解决方案。我认为用一点努力/时间来获得更多的力量/灵活性/清晰的维护可能是值得的。

这些不同甚至相互矛盾的愿望使我很难为我的新机器决定一个好的策略。我喜欢回到 Linux 世界,但我害怕在那里花很多时间。而且由于我离开了一段时间,我没有足够的关于 Linux 桌面当前状况的信息。目前我有这些选择:

A. 使用 Linux 和 Windows 作为彼此并排的双启动。B. 使用 Windows(作为主机)并在虚拟机上安装 Linux C. 使用 Windows,忘记 Linux 并在 Windows 世界中尝试等效的解决方案和配置。

关于发行版我也有同样的冲突,我一直是 Fedora 的主要用户.... Ubuntu?我仍然有很多疑问...Debian 似乎离边缘还很远,sid?我不知道....我喜欢 Arch 的简单哲学,但从未尝试过(我再次害怕可能的时间,这真的很耗时吗?),...

所以请帮助我做出决定,你有什么建议?

ps 我过去对虚拟机没有很好的体验,很多问题,现在可能会改变,但目前我认为在 VM 中安装 Linux 不是一个好主意。

谢谢

更新:(根据金发姑娘的评论)

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

我是一名博士生,正在研究数字信号处理(EECS 系:通信系统)。我的大部分工作主要是数学、模拟(数值计算)和出版(TeX 和矢量图形)。

我的主要开发/模拟/应用程序环境是:

  • MATLAB
  • Python
  • C/C++
  • 特克斯
  • 研究套装,例如(基于 Java 的 Docear,Zotero,....)
  • PDF
  • 吉特

我也有一些兴趣和爱好,例如 Julia、Java、Web 开发(Drupal、HTML/CSS、XAMP,...),...

为什么我对 Windows 不完全满意?

我以前体验过 Linux。

  1. Python、TeXLive、Java 甚至 MATLAB 在 Linux 中的性能都比 Windows 好得多。
  2. 我喜欢并且我需要许多批处理和自动化任务,这些任务在 Linux 世界中可以做得更好。(大多数应用程序都有一个命令行界面,python 脚本和 bash 脚本很容易开发。在这种情况下,即使使用他们有前途的基于对象的 PowerShell,Windows 也根本没有可比性,只是它不是 POSIX)
  3. 我想要一个简化和开放的策略来维护我的操作系统(例如,使用配置文本文件而不是复杂的注册和封闭配置)。我喜欢并且想要访问我所有的操作系​​统角落。这提供了更好的维护、调试和修复功能。
  4. 安全(我厌倦了 AV、沙盒、虚拟环境、防火墙、ALETS ......)
  5. 我是极客,我很好奇!

Linux 在许多方面为我提供了更好的性能和维护。但我怀疑的是 Linux 的稳定性(正如我所提到的)。我在花时间定制我的操作系统、搜索、询问和学习方面没有问题,但我怀疑 Linux 操作系统的稳定性,为桌面用户提供频繁的更新和配置(Linux 服务器的稳定性很好,好的)。

关于发行版

我同意你关于发行版的看法。它们之间没有太大区别,但以带有 Fedora 的 Arch-Linux 为例。从维护的角度来看有很大的不同(看起来,我对 Arch 没有任何经验,这就是我在这里问的原因)。

为您的 Linux 投入时间

正如我所说,我对 Linux 的用户界面、命令行或手册等没有任何问题。这些是我真正喜欢的东西。我害怕在修复错误和损坏的包/操作系统上花费大量时间。考虑这个例子:我已经安装了 Fedora (SUSE) 并且我想将 KDE(Gnome) 作为我的主要 DE,但是预编译包中提供的默认配置非常有问题并且容易失败。好的,这是 Linux,它几乎是 POSIX,我可以做很多事情,等等,我同意!但我不喜欢在日常维护工作的这些部分中投入“大量”时间。好的,现在我的 Linux 操作系统运行稳定,我正忙于我的软件和日常工作,现在我想将操作系统更新到较新的版本......例如,从 Fedora 20 到 Fedora 21,操作系统已升级,砰!很多包不起作用,许多主要的操作系统功能都已损坏,您必须花一两天时间来解决所有这些问题。这只是一个场景,我要问的是:如今(对于中级用户)在 Linux 中发生这种场景的可能性有多大?两三年前,当我使用 Fedora 时,这是可能的。

gol*_*cks 8

除了使用运行 linux 的计算机之外,您还没有解释您的实际目标是什么——显然您已经这样做了大约 10 年。

老实说(因为这绝对是一个“基于意见”的问题),所有对不同发行版的大惊小怪都是荒谬的。这并不是说它们在表面上没有不同,但它们没有根本不同。最显着的差异是最不可变的,通常包括 init 系统,并且几乎总是包管理系统。

你提到了一些编程类型的活动,但也提到了你对在这些活动上投入太多时间持谨慎态度的事实。如果您主要使用计算机是为了在某个领域提高工作效率(同样,您没有对此发表任何意见)1,请尽可能避免编程,而是专注于使用现有软件,这些软件将帮助您提高工作效率富有成效。如果您需要进行大量文字处理,则希望磨练您对文字处理器的熟练程度,而不是编程。

我喜欢回到 Linux 世界,但我害怕在那里花很多时间。

Linux 不是快餐文化,时期。我说这些并不是要诋毁快餐。每个人都喜欢吃,但不是每个人都喜欢做饭。同样,大多数人喜欢听某种音乐,但是当迫不得已时,大多数人实际上并不喜欢制作音乐。

烹饪好或演奏乐器需要投入大量时间。没有必要每个人都这样做。我的建议是,如果您已经对 Windows 感到舒适和满意,那就坚持下去。很明显,您已经使用 linux 很长时间了,但从未真正接受过它。

B. 使用 Windows(作为主机)并在虚拟机上安装 Linux C.

请不。同样,您没有解释这可能的目的是什么,但是维护一个 VM 映像只是为了您可以使用 OS 来完成任何通用计算任务,这不仅是荒谬的边缘,而且完全是荒谬的。VM 可用于测试、模拟和遏制。将它们用作不需要 VM 的“做事”的地方(并且很可能在 VM 中进行操作会受到负面影响和复杂化)就像在车道上开着车,这样你就可以听 CD球员。


1. 您确实提到了“科学背景”,但没有提到这如何涉及使用计算机。你用它来做科学吗?什么样的科学?如何?等等。


[后OP修订]

好的,现在我们有一些更具体的事情要处理。您的主要应用程序列表很简单:MATLAB、Python、C/C++、TeX、PDF、Git 和(我的推断)Java。这些将在任何主流 linux 变体上同样有效。没有人可以(理性地)声称 Java 或 Tex 或任何其他这些东西在一个发行版上比另一个发行版更有效。但继续阅读。

在这个意义上,它们都是等价的部分原因是它们都使用相同的内核(从技术上讲,“Linux”只是内核)和相同的基本用户空间(我主要指的是 C 库,它是一切的关键部分)。他们每个人都单独配置和编译内核,甚至维护自己的补丁集,但这些都不是很重要。例如,如果补丁真的可以区分硬件工作和不工作,那么它最终会出现在原始源代码树中;它不是只有一个发行版提供的东西。

如果配置的发行版内核确实有问题,解决方案是在找到合适的发行版之前不要一直切换发行版。解决方案是自己配置和编译内核。这将是第一次非常乏味,但它并没有超出成年、识字用户的能力。您可以使用 vanilla 源,也可以使用发行版提供的源包。

“研究套件”不是我所知道的,但我认为同样的逻辑将适用(它们在任何发行版上都可以很好地工作),特别是如果它们是基于 Java 的。1 有一个科学的Linux发行是红帽的重新包装,就像CentOS的。它由 CERN 维护和使用,所以大概可以工作,但仅仅因为它被称为“科学”并不一定意味着它会更好或更糟。CERN 这样做的原因并不是因为他们需要运行在 Ubuntu 上运行效果不佳的软件。他们这样做:

  • 所以他们可以有一个标准化的平台。

  • 因此,他们可以看守该标准化平台。例如,他们本可以在某个时候决定使用 CentOS。然而,有必要使系统保持最新,大概是并行的。假设有一天,定期发行版更新引入了一些小问题,导致有人错过了他们在粒子加速器上的一天——不开心的科学家!维护他们自己的发行版并不能保证(当然没有这样的保证),但它确实将权力掌握在他们手中。

也就是说,与 Redhat 平行的发行版往往落后于时代一年左右。这不一定是坏事,理由是稳定性,但对于独立用户来说,这有点毫无意义。一般来说,系统会随着时间的推移而改进,在您拥有并为您操作的单台计算机的情况下,任何因远离当前而导致的问题很可能很容易纠正(打个比方,您总是可以必要时退后一步)。

我对 Linux 的用户界面、命令行或手册等没有任何问题。这些是我真正喜欢的东西。我害怕在修复错误和损坏的包/操作系统上花费大量时间......

自上个世纪以来,我一直是 linux 用户。在过去的 6 年左右的时间里,我一直在 linux 系统上全职工作,主要是出于选择,主要从事编程。我目前选择的发行版是 Fedora,意思是,如果有人问我想在服务器上设置什么,我会说 Fedora。但通常他们真正说的是他们已经用 Ubuntu 或 Debian 设置了服务器,哈哈。我对此非常满意,并且不认为“Fedora 与 Ubuntu”(例如)是一个严肃的争论。我还为自己尝试了各种其他发行版,特别是 Gentoo,我多年来一直是我的主要发行版。

我提到所有这些只是为了表明我没有强烈的偏见,而且我至少在 Fedora、Debian 和 Ubuntu方面有很多经验。尽管在过去十年中它在用户友好性方面取得了很大进步,但我仍然不向其他人推荐 linux(即使喜欢它并且拒绝使用其他任何东西来从事严肃的工作),原因很简单不想听到他们的回音,结果是多么令人头疼。当代 linux 就是它的样子,我认为其中两个闪亮的特征——异构性和透明性——有副作用,即有效使用比说 OSX 需要更高的技术熟练程度。

意思是,如果你想有效地使用它,你可能需要投入比使用更多主流操作系统更多的时间。在这个持续的过程中,毫无疑问,你会遇到令人沮丧的可笑障碍。根据我的经验,这永远不会结束,但我确信我的耐心和解决问题的能力(在这种情况下)已经提高。解决问题的一部分是正确识别它们,所以让我们检查您对“修复错误和损坏的包”的抱怨以及它浪费的时间。

此类投诉几乎总是归结为用户的无知和困惑。在我与系统搏斗的数以千计的时间里,99% 的时间是必须的,因为我必须学习一些东西,可能还有 1% 的时间是因为真正的缺陷。当然,尤其是在最初的几年里,我并不总是这样看。了解差异的一个好方法是在您认为确实是问题时提交错误报告,呵呵。是的,您必须在某处创建一个帐户并回复电子邮件,但如果您是认真的,您不妨这样做。

在 linux 世界中,用户混淆经常最终在错误报告中得到解决的部分原因是,与商业产品不同,软件的作者可能没有太多动力让您使用或理解它2 如果您在使用它时遇到问题,那对他们来说根本没有任何关系。某些流派的理论家会争辩说,这肯定会导致劣质产品;IMO 它实际上产生了一个更好的结果,这又回到了为什么我喜欢 linux 但不向其他人推荐它的原因:我不想要一个迎合最低公分母的产品. 我认为我 74 岁、技术上无可救药的母亲喜欢她的 iphone 真是太好了。但是使它对她有用的东西使它对我来说非常无用。这就是野兽的本性。

因为这个 linux 有时看起来有点“刻薄”。就像,这是一个看起来很棒的系统,具有所有这些潜力等等,但我不得不浪费一天的时间来弄清楚如何配置我的桌面? 我去过那里,我想追捕并扼杀我认为有责任的人。他们怎么可以这么冷酷?为什么他们不能以明显的(对我来说......)方式使这更容易?至少有一些更好的文档!

部分问题是资源。开发 FOSS 软件的人通常没有太多或没有预算。他们不能用完并聘请一组技术作家来记录产品,可悲的是,这不是人们热衷于自愿参与的事情:他们想要编码。找到好的文档编写者可能比找到好的程序员更难。当你没有得到报酬时,它只是在同样的意义上没有回报。

IMO,linux 是技术人员为技术人员提供的平台(这显然是感兴趣的部分原因)。公平地说,有很多努力,特别是 GNU 和 Canonical 的努力,以使其成为主流操作系统的替代品,对于世界各地的人们来说,每隔几年向 MS 或 Apple 支付数百美元是一种负担。严重的问题。这很棒,但它仍然主要是技术人员的技术平台。

所以,回到一些绊脚石:不是每个人都关心免费(不像啤酒)开源软件的理想,而且很容易从最终用户的角度将系统视为与专有软件本质上相同的东西操作系统。这是一个错误,不是因为我认为您需要关心 FOSS 意识形态,而是因为在欢迎任何人做出贡献的上下文中存在一些实质性的实际差异(注意,这不是被认真对待的同义词;这取决于什么你实际上带到了桌子上)并且(正如已经解释过的)没有人真的有义务回答用户或任何其他特定的权威。“Linux 世界”在很多方面都是无政府主义的(在哲学意义上,不是口语化的,意思是“混乱”),除了许多主要组织(例如 GNU、Redhat、Cannonical)是规范的层次结构。

再说一次,我并不是说你需要认真对待任何特定类型的意识形态,等等。我指出这一点是因为它在实用上有助于理解。 作为 linux 用户,与大型专有操作系统的普通用户相比更大程度上参与了该项目。这就是错误报告之类的东西很重要的原因,尽管再次不幸的是,许多关键交互最终都会发生。当然,在这里做会更好!

我也不是说你是“项目的一部分”,因为我认为社区意识是一件好事,或者因为 linux 极客都是偷偷地(或不那么偷偷地)嬉皮士,或者因为它可能成为一个很好的营销口号。我这么说是因为该项目需要工作,如果您想从实际体验中获得最大收益,您需要将自己视为该工作的一部分(而不是它的消费者)。

或者你可以找一堵墙,用头撞墙。没有人关心,老实说。这就是自由。

我已经安装了 Fedora (SUSE) 并且我想将 KDE(Gnome) 作为我的主要 DE,但是预编译包中提供的默认配置非常有问题并且容易失败

你指的是你做了一点编程,所以我相信你很熟悉寻求帮助的新手说“我的编译器的 std::string 无法正常工作!”的情况。我花了很多时间帮助有编程问题和抱怨编译器一定是错误的人等,几乎总是(例如,再次超过 99%)错误。

就像内核问题一样,解决配置问题通常不是通过切换发行版来最好地完成的,而是通过更改配置来完成的。意思是,您必须在我已经描述的上下文中了解它。你对这花费的时间表达了很多沮丧——每个人都有这种感觉,但这就是野兽的本性。它不是一种以一系列承诺出售给您的产品,并且(再次)以这种方式接近它无济于事。出于挫折而切换发行版就是放弃;我已经做到了,从长远来看,我认为它除了缓和让你陷入这种境地的 __ ing _ _heads的一时愤怒之外,并没有太大的作用。最终你必须坐下来接受这一点,如果你想要一些你想要的东西你可能必须自己做

好的!所以这里有一些建议:

  • 软呢帽。我的最爱,正如我所说的,但你似乎有一些不好的经历。Fedora/Redhat 与 Ubuntu/Canonical 的不同之处在于,它们将资源较少地集中在桌面上——例如,与Unity没有相似之处。Fedora 往往是最新的发行版(但正如所讨论的,下游 RHEL 和衍生产品并非如此)。

  • 乌班图。根据意图,这可能是最传统的用户友好发行版,并且毫不奇怪,最受欢迎。Ubuntu 通常或多或少地与 Fedora 保持同步,可能由于它与更保守的 Debian 的关系而变得复杂。

  • 拱。我只在短时间内试用了 Arch,但从其他人那里得到了长期稳定的信任。我推荐这个的原因是因为我认为如果它早在几年前就存在的话,它对我来说曾经是一次很棒的体验。多动手,这似乎是(必须)学习您可能会避免的事情的好方法。所以,这可能意味着更多的挫折;希望我已经指出,正面处理这些问题需要时间,但可能会让你更快乐。也许不是今天下午晚些时候,而是最终。

我没有在这里遗漏其他发行版,因为我认为它们很糟糕,等等。例如,我每天都在使用 Debian,并且没有与上述任何一个相关的严重问题。但这些是我的前三项建议。

你是一名博士生,认真对待电脑。给定无限的时间,大多数人都愿意做很多他们在现实中没有时间做的事情。3 这就是生活。我认为您应该继续使用 linux,但您显然需要在这方面的需求与您的学术义务之间取得平衡。 与其假装你可以在没有足够时间的情况下正确完成这些事情,不如认清你没有时间做的事情,这就是为什么我最初建议您最好坚持使用 Windows。沮丧是自然的,但哀叹这些事实不会改变它们:有些事情只是需要认真的时间和精力,这就是为什么我最初说您选择的发行版不会产生太大的影响。它们仍然是 linux,而 linux 是一个非常严肃的野兽 :]


1. 值得注意的是,您并不仅限于发行版 java。如果您愿意或需要,您可以安装最新的 Oracle 并配置系统以使用它。

2. 但他们确实有解决错误报告的真正动机!请注意,除非您真的相信存在错误,否则我不建议将其作为对开发人员进行错误处理的一种方式。

3. 还记得我最初说过大多数人喜欢食物和音乐,但不一定会做饭和演奏乐器吗?那是因为他们是凡人 ;)