银河快报

给朋友讲明白麒麟银河系统那个让人头大的软件包架构

上周末朋友老李抱着一台装了银河系统的笔记本过来,满脸困惑:“这玩意儿装软件怎么感觉和Windows不太一样?”我把茶杯推过去,说这其实不难,就是没换个角度去看它。

先把“包”这件事说清楚

你肯定装过手机App,点一下下载就完事了,但操作系统里的软件安装没这么简单——一个程序往往依赖其他组件才能跑起来,于是就有了软件包这个概念:它不单是程序本身,而是一个打包好的“包裹”,里面装着程序文件、配置信息,还有一张“清单”写明我需要哪些依赖才能工作

麒麟银河系统走的是Deb包体系,因为它脱胎于Debian/Ubuntu这一脉,这就像快递行业统一用了标准纸箱,不管里面装的是书还是瓷器,外包装规格大家都认得。

包格式 所属生态 包管理工具
.deb Debian / Ubuntu / 银河麒麟 dpkg、apt
.rpm Red Hat / CentOS / 中标麒麟 rpm、yum/dnf

注意别把“银河麒麟”和“中标麒麟”搞混了——前者走Deb系,后者走RPM系,俩亲戚但口味不同。

包管理器:你的软件管家

你当然可以手动下载一个.deb文件双击安装,但要是这个包还缺三个依赖,你就得一个一个去找——这就跟在宜家买了个柜子,结果发现螺丝、扳手、说明书分开发货似的。

所以银河麒麟里真正干活的角色是APT(高级打包工具),你在命令行敲下 apt install 的时候,APT会做这么几件事:

  • 去软件源列表里翻找你要的包
  • 检查这个包还缺什么“搭子”
  • 自动把依赖也一块儿拉下来装好

这套操作下面又分两层:上层是apt这个体贴的管家,下层是dpkg这个只管拆包安装的实在人,apt负责算账、安排活,dpkg负责动手干活,打个比方,apt像餐厅的大堂经理,dpkg是后厨颠勺的师傅——你点菜跟经理说就行,不用管后厨怎么出餐。

给朋友讲明白麒麟银河系统那个让人头大的软件包架构

软件源:包的货架仓库

那APT去哪个“货架”上找包呢?答案在/etc/apt/sources.list这个文件里,打开看看,每一行就是一个仓库地址,标明了这是官方主仓库、安全更新仓库,还是第三方源。

银河麒麟自己维护了一套官方源,里面所有包都经过适配和测试,保证能在国产硬件平台上稳稳运行,像飞腾、鲲鹏这些ARM架构芯片,官方源里的包都是专门编译过的,你从别处随便拖一个deb包过来反而可能水土不服。

我第一次用银河麒麟的时候也犯过迷糊——想装个软件,网上搜了个Ubuntu的源地址就往里加,结果差点把系统依赖搞崩了,后来才明白,并不是所有.deb包都能通用,芯片架构不一样,指令集就不一样

包的分层架构:积木塔的结构

银河麒麟的包体系其实是一层层摞起来的,我画个简图你一看就懂:

给朋友讲明白麒麟银河系统那个让人头大的软件包架构

底层是内核和基础库,比如glibc、systemd这些,整个系统能不能跑起来全靠它们。中间层是X11显示服务、桌面环境组件、各种系统守护进程——你看到的图形界面、任务栏、文件管理器都在这层,最上层才是应用软件包,WPS、麒麟影音、浏览器等等,它们站在下面两层搭好的台子上,安心干活就行。

这套分层有个好处:底层的东西单独升级,只要接口不变,上面的应用完全不用管,比如系统推送了一个内核安全补丁,更新完重启一下,你桌面上该码字码字、该看视频看视频,什么事都没发生。

桌面安装器:给不敲命令的人留的门

不是每个人都喜欢敲命令行,银河麒麟自带的麒麟软件商店其实就是给APT套了一层图形外壳,你在商店里点“安装”,后台照样走的是apt那一套流程,只是把终端里的输出藏起来了。

有意思的是,商店里的软件分了两类:一类是系统仓库自带的,另一类是商业合作软件,后者的包可能不在标准源里,商店会额外帮你处理好下载和依赖,对普通用户来说省心很多,你要是企业运维,大概率还是直接上命令行——批量装机、写脚本的时候,图形界面反而成了累赘。

写到这儿,老李已经把系统更新跑起来了,屏幕上的进度条慢慢往前走,他说原来这东西跟手机应用商店是一个思路,换个马甲差点没认出来,我说差不多,只不过手机App是各自独立的胖子,Linux软件包更像是一群互相借工具的木匠——用得巧了,省料又牢固。

关键词: