menu Chancel's Blog
rss_feed lightbulb_outline

用Linux做程序开发01 - 选择Manjaro的理由

warning 这篇文章距离上次更新于99天前,文中部分信息可能已失效,请自行甄别无效内容。

1. 起源

以前杂杂碎碎的说写过不少关于Linux知识的文章,这次想着干脆整理成一个系列,用来记录我个人使用Linux作为开发环境的一些感悟,先说说我的日常开发内容

  • 常用语言:.Net/Python/PHP
  • 常用工具:DB工具/VSCode/VS全家桶/PyCharm/PhpStorm
  • 笔记记录:VSCode
  • 必备软件:Google Chrome/微信/QQ/欧路词典

上面常用软件只是一个简列,其实就是需要IDE、笔记、翻译查资料等三个部分,得益于移动设备的强势,以前需要的PC长干的听歌/邮件处理/下载等都有其他更好的处理方案了

用Linux做开发环境的优势越来越明显,劣势越来越不明显

但我依旧建议即便使用Linux作为开发环境前要琢磨清楚需求,我是有专门的设备处理下载(Nas),也不会在公司玩游戏,即便如此我也依旧有双机党,有一台Windows+Linux的配置,Linux做主力开发,Windows做辅助跟开发.Net相关程序

如果你已经对Linux有过初步的接触,那么阅读这个系列有助于你了解更清晰的Linux知识

限于个人能力,也很欢迎指出文中的错误之处,本系列权当抛砖引玉

2. 说说Linux发行版

2.1. 什么是Linux发行版?

引用维基百科的解释

Linux 发行版(英语:Linux distribution,也被叫做GNU/Linux 发行版),为一般用户预先集成好的Linux操作系统及各种应用软件。一般用户不需要重新编译,在直接安装之后,只需要小幅度更改设置就可以使用,通常以软件包管理系统来进行应用软件的管理。Linux发行版通常包含了包括桌面环境、办公包、媒体播放器、数据库等应用软件。这些操作系统通常由Linux内核、以及来自GNU计划的大量的函数库,和基于X Window的图形界面。有些发行版考虑到容量大小而没有预装 X Window,而使用更加轻量级的软件,如:busybox, uclibc 或 dietlibc。现在有超过300个Linux发行版(Linux发行版列表)。大部分都正处于活跃的开发中,不断地改进。

简单来讲,选择linux发行版对普通用户来讲其实就是选择包管理器与桌面(但这两个都是可更改的,不过话说回来linux下有什么是不能通过更改来解决的呢?)

多数情况下,选择一款发行版,都是选择一套桌面与包管理器、一些默认软件

Linux包管理器,比较常见的两种软件包管理系统

  1. 管理deb软件包的dpkg以及他的前端
    • apt:常见于debian、ubuntu系列
  2. RPM包管理员以及他的前端
    • dnf:常见于fedora
    • yum:常见于其他Red Hat Linux系发行版,如cent7
    • ZYpp:常见于openSUSE
    • urpmi:常见于Mandriva Linux

这两种相信稍微接触过Linux的同学一定认识,他们分别的国内最常见发行版CentOS跟Ubuntu的包管理器

2.2. 有哪些常见的Linux发行版?

基于Dkpg软件包管理器的debian系发行版,最有名气的大约是Ubuntu系列了,许多前辈入门推荐之选,Ubuntu的确是一个非常适合体验Linux桌面发行版的操作系统,除了他安装软件时恼人的混乱依赖关系

常见的Debian发行版列表如下

名称 特点
Ubuntu 一个非常流行的发行版
Debian 信奉自由软件、由志愿者开发维护
Kubuntu 使用KDE桌面的Ubuntu
Linux Mint 从Ubuntu派生并与Ubuntu兼容的系统
Knoppix 第一个Live CD系统
OpenGEU Ubuntu的派生版
Elementary OS 基于Ubuntu,酷似Mac OS X

除了Debian系的发行版,基于RPM软件包管理器的REd Hat系发行版应该是大名鼎鼎的

什么?朋友你没听过Red Hat,就算你不认识CentOS,总归在某些科学爱国时候敲过"yum -y install python"的吧?

如下是常见的Red Hat系的发行版列表

名称 特点
Red Hat Enterprise Linux Fedora的上夜班
openSUSE 由Slackware分离出来的发行版
Fedora Red Hat的社区版
PCLinuxOS Mandriva的派生版本
CentOS 从Red Hat发展而来的发行版,由志愿者维护,提供百分百兼容Red Hat的兼容性
Megeia Mandriva发展而来的系统

除了Debian/Red Hat系列,还有许许多多优秀的第三方发行版,这其中较有名气当属Arch Linux系列,其他的比较有名气的发行版如下

名称 特点
ArchLinux 一个基于KISS(keep it simple and tupid)的滚动更新发行版
CHakra ArchLinux的KDE桌面版
GENtoo 一个面向高级用户的发行版(需要自动编译)
Slackware 最早的linux发行版之一

更加详细的可以参考维基百科 - Linux发行版比较

3. 适合做开发的发行版

这个问题没有标准,萝卜青菜各有所爱,了解每一个发行版在各个场景下的优劣势再选择适合自己的发行版是明智的选择

3.1. Ubuntu OS

出身Debian系的Ubuntu似乎是个不错的选择,连国内不少计算系的学生都认为Linux=Ubuntu.,作为国内中文资料最多的Linux发行版,Ubuntu无疑是Linux最佳入门发行版,强大的中文资料可以让你在使用时候宾至如归,相较于Cent OS/Fedora 只提供开源软件的包管理器来看,Ubuntu的包管理器也依旧有极其强大的优势,Ubuntu拥有庞大的软件仓库,能够让你轻松安装数以千计的程序,包括非开源软件。

Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。Ubuntu基于Debian发行版和Gnome桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity。从前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。Ubuntu也拥有庞大的社区力量,用户可以方便地从社区获得帮助。

3.2. Cent OS

个人的看法是CentOS不算是一个明智的选择,虽然他装机量媲美国内最流行发行版Ubuntu,但包管理器实在是太老了,很多软件包都停留在非常老旧的版本,安装许多软件都只能自编译,增大使用成本,随着DNF替换YUM的进程这个问题或许会得到改善

如果你出于某种原因想使用这个常见于服务器的操作系统,我也建议尽量使用 Fedora,作为Red Hat亲儿子,激进的特性引入注定Fedora是一个非常特别的发行版,适合服务端跟普通PC端,官网上有Server版、 WorkStation版。

作为国内最受欢迎(免费)Linux发行版之一,大部分中小公司都会采用CentOS系统作为服务端操作系统,良好的软件生态和快捷方便的Yum前端管理工具,提供强大的稳定性、易操作性,特别适合一些初次接触Linux系统的同学,此系统更合适于在服务端操作系统上使用,安装KDE、Gnome等桌面稳定性一般

3.3. Elementary OS

如果说Ubuntu实在太常见了,常见到很多人都对他的界面感到审美疲劳了,虽然说折腾Linux的桌面是一项非常大的乐趣,但如果我只想要一个默认的不烂大街的Ubuntu发行版呢?

那就是它,Elementary OS!如果你跟我一样对Ubuntu的默认界面的审美感到绝望,可以尝试一下这个基于Ubuntu系统的发行版,优美的界面以及强大Ubuntu的底子让这个系统成为非常优秀的桌面发行版

elementary OS is a Linux distribution based on Ubuntu that focuses mainly on non-technical users. It promotes itself as a “fast, open, and privacy-respecting” replacement to macOS and Windows and has a pay-what-you-want model.[4][5] The operating system, the desktop environment (called Pantheon[6]), and accompanying applications are developed and maintained by elementary, Inc --Wikipedia

3.4. Deepin OS

如果你对上面的都不满意,那就来看看我心里最酷的发行版(也是我入坑的发行版),Deepin!国产的Linux发行版,其优美的外观肯定让你第一眼无比惊艳,深度出品,他带动了Tim/Wechat等国产软件的Linux版本发布,可惜其稳定性与资源消耗大的缺点在当时成为阻止我继续使用的原因,时隔一年多,这两点应该有所长进,私认为Deepin比上述的发行版更合适个人使用

Deepin原名Linux Deepin、deepin os、深度系统、深度操作系统,于2014年4月改名Deepin。deepin团队基于Qt/C++(用于前端)和Go(用于后端)开发了的全新深度桌面环境(DDE),以及音乐播放器,视频播放器,软件中心等一系列特色软件。

3.5. Manjaro OS

然而无论Debian还是Red Hat,都仍然不能满足于我,为什么?因为即便是Ubuntu依旧有不少软件很旧,更新缓慢,许多软件仍然需要自己编译,还有奇怪的依赖关系总是难以解决。安装在实际的物理机器上还有不少驱动问题需要折腾解决,Unity(Ubuntu桌面环境)真的挺丑的,于是我找到了一个位于欧洲大陆却始终被认为是亚洲国家(笑)的发行版Manjaro

Manjaro /mənˈdʒɑːroʊ/ is an open-source Linux distribution based on the Arch Linux operating system. Manjaro has a focus on user friendliness and accessibility, and the system itself is designed to work fully "straight out of the box" with its variety of pre-installed software. It features a rolling release update model and uses pacman as its package manager.[5]

相较于Ubuntu,Manjaro的优点

  • 多桌面环境,KDE?Gnome?还是XFCE,哪怕Deepin桌面都有得选
  • 丰富的包软件资源,只要是Github上叫得出名字的软件,用管理器搜索多半有惊喜
  • 稳定的滚动更新,相较于Arch系列激进的滚动更新,Manjaro提供了多两周的容错时间
  • 广泛的硬件支持,这点相对于传统的Debian和Cent系列的发行版大大降低了由于闭源驱动问题导致安装失败的概率

这是我使用将近一年的Linux发行版之后得出的体验,最终停留在Manjaro上,其强大的稳定性与软件更新的策略都让我十分满足,对于硬件资源的消耗可大可小,喜欢优美外观机器性能足够的尽管上KDE/GNome/Deepin桌面,如果机器性能捉急,上XFCE也能获得无比强大的稳定性。

阅读 - 145
分类 - 操作系统
创建于 2019-12-05 15:26:40
阅读 - 145
分类 - 操作系统
创建于 2019-12-05 15:26:40
博文目录

[[replyMessage== null?"发表评论":"@" + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageList.data.items.length]])

[[messageItem.create_time]]
[[messageItem.m_environ.browser]] [[messageItem.m_environ.os]] [[messageItem.m_environ.device]]
[[subMessage.m_author]] @ [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[subMessage.m_environ.browser]] [[subMessage.m_environ.os]] [[subMessage.m_environ.device]]