银河麒麟V11官网开放下载那两天我第一时间就下了镜像装进虚拟机。老实说刚看到V11这个版本号时我以为是V10的常规小迭代直到装完跑起来才发现这次桌面、内核、软件生态都有肉眼可见的变化。文章里我不会去念官方通稿只讲实际动手时的体验、踩过的坑以及从V10迁到V11必须知道的事。如果你正打算换系统手头有V10 SP1/SP2的机器或者要在麒麟系统上装MySQL、配静态IP、跑Qt这篇值得先收藏。1. V11到底升级了什么先看清这次改动的底子1.1 内核版本与驱动兼容很多人问银河麒麟v11版内核版本是多少装完第一件事就是uname -r确认内核。V10 SP1和SP2大部分是4.19内核这次V11的x86_64桌面版内核基线明显提升了ARM版也有对应的主线内核分支。不同架构、不同设备厂商定制版的内核号会有差异但整体已经脱离了4.19那个时代对新的显卡、NVMe硬盘、USB无线网卡的支持会好很多。我用虚拟机装的时候默认内核直接识别了virtio网卡和virtio磁盘不用额外打驱动。物理机上如果碰到老旧设备建议优先去官网的驱动专区找对应架构的驱动包不要拿V10的驱动硬装V11内核模块接口变了V10的dkms包在V11上很容易编译失败。实测里最典型的就是NVIDIA闭源驱动V10上的470系列驱动在V11上安装时直接报unknown symbol这种情况只能换新版驱动。1.2 软件生态与 deepin-elf-verifyV11的软件商店比V10清爽很多更重要的是包管理层面引入了更多对deb包格式的校验逻辑。这就要提deepin-elf-verify银河麒麟这个热词了。很多人第一次碰到它是在安装第三方软件包时看到类似deepin-elf-verify: error: No such file or directory的提示。这个工具实际是一个ELF二进制兼容性校验器用来检查一个deb包里的可执行文件在目标系统上能不能找到所需的动态库、符号版本够不够。银河麒麟V11里预置了它装商业软件如某些国产办公软件、会议客户端时如果包是从别的发行版直接拷过来的很容易被它拦下来。deepin-elf-verify -f /path/to/package.deb deepin-elf-verify -d /opt/someapp/bin/somebinary手动执行可以看具体缺哪个库。最常见的坑是缺少libstdc.so.6的GLIBCXX符号或者libssl.so.1.1。解决思路不是绕过校验而是补齐兼容库比如从V10的源里抓老版本libssl或者安装软件商提供的依赖包。强行用dpkg -i --force-depends绕过装完大概率运行时报段错误。1.3 桌面环境与日常使用差异V11默认桌面仍然是类Windows的布局但窗口管理器换了不少东西。任务栏、控制面板、文件管理器全部重做了一遍整体响应速度比V10快尤其文件管理器打开大目录不再卡顿。一个人感受最明显的变化是V11的开始菜单里默认集成了更多Wine类应用比如微信、QQ的Windows版本可以直接运行不再需要自己折腾wine环境。另外一个细节是V11的快捷键和V10有差异比如截图工具默认绑定到了CtrlAltA和很多第三方截图工具冲突。升级后如果发现快捷键没反应先把系统自带的截图快捷键改掉再开第三方工具。2. 镜像下载与安装部署从ISO到跑起来2.1 镜像下载与校验银河麒麟V11官网开放下载后镜像分桌面版、服务器版还分x86_64和ARM64含飞腾、鲲鹏、麒麟等平台专用版本。下载时要注意区分银河麒麟桌面版V11和银河麒麟服务器版V11两个iso的内核、软件源不完全一样。服务器版默认没有图形界面装完只有命令行桌面板则带完整GUI。很多人下了服务器版装着装着发现没有桌面以为是安装失败其实是版本搞错了。下载完先校验一下文件完整性官方页面提供SHA256值。Linux/macOS下用sha256sum Kylin-Desktop-V11-x86_64.isoWindows下用PowerShellGet-FileHash .\Kylin-Desktop-V11-x86_64.iso -Algorithm SHA256校验值对不上大概率是下载过程中断了重新下载别硬装。镜像文件损坏导致的安装报错非常恶心往往到中间某个包阶段才失败浪费半小时。2.2 U盘启动盘制作与安装流程制作启动U盘我实测下来最稳的是用Ventoy把iso直接扔进U盘就能启动不用反复格式化。如果手头有Linux环境也可以用dd直接写入sudo dd ifKylin-Desktop-V11-x86_64.iso of/dev/sdX bs4M statusprogress注意写的是U盘设备名/dev/sdb这种不是分区名/dev/sdb1写错了会把你U盘或硬盘数据全清了。安装过程里有个关键选项要留心分区方案。V10时代默认会创建单独的/boot分区V11的默认方案更接近主流发行版直接一个根分区加一个EFI分区。如果你是想在原有V10上升级式安装不要选清空整个磁盘要选手动分区。2.3 虚拟机安装与静态IP配置vm kylin v11 静态ip 能上网这个热词背后是大量人在VMware或KVM里装了V11后发现默认DHCP能上网但一配静态IP就断网。V11的网络管理默认走NetworkManager配置文件路径是/etc/NetworkManager/system-connections/不再是V10里常用的/etc/sysconfig/network-scripts/。用命令配静态IP最简单nmcli con mod 有线连接 ipv4.method manual ipv4.addresses 192.168.122.66/24 ipv4.gateway 192.168.122.1 ipv4.dns 223.5.5.5 119.29.29.29 nmcli con up 有线连接这里注意ipv4.addresses一定要带掩码写成192.168.122.66不带/24NetworkManager会自动按默认掩码处理结果就是虚拟机和外网完全不在一个网段自然ping不通。另一个坑是网关地址写错。VMware的NAT模式网关一般是192.168.x.2不是.1KVM/QEMU默认网关是192.168.122.1。配完静态IP后先ping网关ping -c 3 192.168.122.1 ping -c 3 223.5.5.5网关通了、外网ping不通基本就是DNS问题。V11默认的systemd-resolved会和NetworkManager的DNS配置产生冲突如果发现/etc/resolv.conf指向127.0.0.53建议直接把DNS配置写进NetworkManager连接里并重启网络服务实测最稳。3. 软件安装与开发环境连Qt和ODBC都能跑3.1 软件源配置与安装命令麒麟V11基于debian系最常用的安装软件命令依然是sudo apt update sudo apt install 软件包名和V10最大的区别是V11的软件源默认地址变到了新域名老教程里写的archive.kylinos.cn里的V10目录在V11上会报404。建议装完系统第一件事就是检查/etc/apt/sources.list确认里面的发行版代号是不是V11对应的代号。有些从V10保留升级的用户升级后软件源没切换导致apt update报错或者装任何新软件都是无法定位软件包。如果公司的内网环境有自己的麒麟源镜像直接把sources.list里的地址换成内网地址即可麒麟的源目录结构和其他debian源类似dists和pool文件夹都在。需要安装某个软件但是apt源里没有时优先去软件商店搜麒麟软件商店里已有大量适配V11的软件包包括WPS、福昕、中望CAD这些重型商业软件比自己跑去第三方网站下载deb包安全得多。3.2 ARM架构下的装载适配arm架构的银河麒麟系统下这几个字我猜你们搜的时候一定带着一脸无奈。ARM版V11和x86版软件源里的包架构不一样源地址也不一样。最典型的问题是在ARM机器上下载了x86_64的deb包安装时提示wrong architecture amd64。解决办法只有一个重新下载aarch64架构的包。很多软件官网下载页会区分x86_64、aarch64或arm64千万别看都不看就下。另外在ARM版麒麟上编译源码时要确认编译器的默认目标平台uname -m gcc -dumpmachine如果是aarch64那configure的时候不需要加额外参数但如果源码里内嵌了x86的汇编,编译到一半会报错只能找官方移植版或交叉编译工具链。ARM设备上装MySQL、ClickHouse这类数据库建议直接装软件源里的版本因为官方源里针对aarch64做过优化。实在要装某个特定版本比如MySQL 5.7.44优先找对应aarch64的编译包源码编译在ARM上耗时很长而且OpenSSL版本不对很容易编译失败。3.3 Qt开发环境与ODBC连接qt连接odbc和银河麒麟qt无法访问string这两个热词说明不少人在V11上搞Qt开发。V11软件源里的Qt版本比V10新不少Qt5的库路径基本兼容但注意新装系统后不会默认安装Qt开发库要先装一堆东西sudo apt install qtbase5-dev qtbase5-dev-tools libqt5sql5-odbc libqt5sql5-mysqllibqt5sql5-odbc这个包是关键很多人装了Qt之后发现QSqlDatabase里没有QODBC驱动就是因为缺这个包。装完后验证一下ls /usr/lib/x86_64-linux-gnu/qt5/plugins/sqldrivers/看到libqsqlodbc.so就说明驱动就位了。Qt连接ODBC的连接串写法QSqlDatabase db QSqlDatabase::addDatabase(QODBC); db.setDatabaseName(Driver{ODBC Driver 17 for SQL Server};Server192.168.1.100;Databasetestdb;); db.setUserName(sa); db.setPassword(password); if (!db.open()) { qDebug() db.lastError().databaseText(); }qt无法访问string这个报错我遇到过一半是编译器版本问题——代码用了C11的std::string但编译时没开对应标准。在V11上如果Qt项目里出现奇怪的std::string相关错误先检查.pro文件CONFIG c11或者直接用QMAKE_CXXFLAGS -stdc17另一个原因是Qt库和编译器不匹配V11系统自带的gcc版本较高如果项目里还链接着V10时代编译的第三方库符号版本对不上就会出现string相关符号找不到的情况这种建议全部重新编译一遍依赖库。4. 数据库、防火墙与常见问题排查实录4.1 MySQL/MariaDB的安装与启动V11软件源里默认带的是MariaDB直接装sudo apt install mariadb-server sudo systemctl start mariadb sudo systemctl enable mariadb注意新装MariaDB后默认root用户是走unix_socket认证的也就是说在系统命令行下用root身份执行mysql能直接进去但用root密码登录会失败。先用socket登录再改认证插件sudo mysql ALTER USER rootlocalhost IDENTIFIED VIA mysql_native_password; SET PASSWORD FOR rootlocalhost PASSWORD(你的密码);如果是服务器版V11,很多人的需求是装MySQL 5.7.44这种指定版本。V11的源里大概率没有5.7需要下载官方二进制包。下载mysql-5.7.44的Generic Linux版glibc2.17以上后解压到/usr/local/mysql做这几件事groupadd mysql useradd -r -g mysql -s /bin/false mysql cd /usr/local/mysql mkdir mysql-files chown mysql:mysql mysql-files bin/mysqld --initialize-insecure --usermysql --basedir/usr/local/mysql --datadir/usr/local/mysql/data bin/mysqld_safe --usermysql --initialize-insecure会生成一个无需密码的root账号启动后立刻改密码bin/mysql -uroot ALTER USER rootlocalhost IDENTIFIED BY 新密码;V11上装MySQL最常遇到的是缺少libaio.so.1直接装sudo apt install libaio1另一个问题是V11的gcc版本新MySQL官方5.7包里的部分二进制在glibc版本过高的系统上可能能跑但mysqld启动时报mysqld: error while loading shared libraries用ldd mysqld排查缺哪个库装上对应兼容库即可。4.2 防火墙配置麒麟V11默认开着防火墙很多服务起不来排查半天才发现是防火墙拦截。查看状态和开放端口的命令sudo systemctl status firewalld sudo firewall-cmd --list-all开放端口sudo firewall-cmd --permanent --add-port3306/tcp sudo firewall-cmd --permanent --add-port8080/tcp sudo firewall-cmd --reload服务器版V11默认用的是firewalld桌面板V11也是。区别在于桌面版还有一个图形化防火墙配置工具在控制面板里可以点选端口放行。一个常见的场景是虚拟机里装了MySQL宿主机用Navicat连不上第一反应是调MySQL配置其实先看防火墙sudo firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.122.0/24 port port3306 protocoltcp accept这是只放行内网网段访问3306比直接放开所有地址安全得多。另外MySQL/MariaDB默认绑定地址是127.0.0.1只改防火墙不改监听地址外部照样连不上。数据库配置文件里/etc/mysql/mariadb.conf.d/50-server.cnf的bind-address要改成0.0.0.0或指定内网IP改完重启数据库才生效。4.3 典型问题速查表整理一下我在V11上遇到过的常见问题和处理方式现象可能原因解决方法开机进不了图形界面卡在黑屏显卡驱动问题CtrlAltF2进字符界面卸载刚装的显卡驱动回退到nouveau或集成显卡静态IP配了但外网不通网关或DNS错误、掩码缺失按本文2.3节重新配置先ping网关再ping外网apt update时提示404软件源还是V10的地址把sources.list换成V11对应源地址安装deb包报deepin-elf-verify错误二进制与系统库不兼容查看缺的动态库补装兼容库不要强制绕过局域网其他电脑ping不通这台机器自带防火墙拦截ICMPsudo firewall-cmd --permanent --add-icmp-block-inversion然后reload在ARM机器上装了x86的软件包下载的包架构不对重新下载aarch64版本升级系统空间不足/boot分区太小,旧内核未清理手动清理旧内核sudo apt autoremove --purgeV10的老程序在V11上闪退依赖库版本差异重新安装V11版或从软件商店装适配版本V11的apt系统在使用中还会出现依赖关系锁住的问题比如某个包卸载不干净之后所有安装都提示E: 无法修正错误因为您要求某些软件包保持现状。这种情况用sudo apt --fix-broken install sudo apt -o Dpkg::Options::--force-overwrite install -f强制修复后一般就能继续装了。4.4 保留数据重装与V10迁移银河麒麟保留date重装系统这个热词我想应该是保留/data重装系统的误输入。这确实是很多服务器运维的真实需求重装系统但不能动数据盘。正确做法是在安装系统的手动分区步骤里找到原来的数据分区把挂载点设为/data或者任意你指定的路径挂载选项保持默认分区的格式化勾选一定要取消。只要你不勾选格式化系统重装后数据都还在。如果分区表本身是LVM操作时更要小心先记下VG名和LV路径vgdisplay lvdisplay装完系统后再挂载mkdir -p /data mount /dev/vg01/lv_data /data echo /dev/vg01/lv_data /data ext4 defaults 0 0 /etc/fstab如果重装前没有备份分区信息就全盘重装了数据分区被覆盖那就只能尝试用testdisk之类的工具恢复分区表有恢复的概率但不保证。所以真正重要的数据重装之前无论如何先备份一份到外部盘这是所有方案里最靠谱的一招。从V10升到V11还有一个点是V10上装过的软件不会自动迁移过来因为V11的系统库版本变了直接拷贝V10的/opt目录到V11上很多软件跑不起来。建议重新用软件商店或apt在线安装毕竟V11的生态比V10成熟大部分常用软件都有官方适配版。最后再分享一个实际操作中的体会V11现在还在持续更新阶段刚装完系统第一件事是sudo apt update sudo apt upgrade把内核和基础包升到最新版很多初版镜像的bug在升级后就被修掉了。如果你是从V10走过来的老用户给V11一点耐心前两周可能觉得各种不习惯但用过一个月后回头再摸V10会明显感觉到卡顿和界面粗糙。这次V11的升级力度我觉得是值得折腾一次的。