在麒麟os上通过源码编译安装软件是解决仓库缺包、arm64飞腾适配或自定义编译选项的唯一可靠路径,需先确认系统类型(cat /etc/os-release)和架构(uname -m),再按桌面版或服务器版安装对应编译依赖,解压后进入源码目录,用./configure或cmake配置(--prefix=/usr/local为关键),make -j$(nproc)编译,sudo make install安装,并对.so库执行ldconfig刷新缓存。

在麒麟OS上通过源码编译安装软件,是解决系统仓库无对应版本、需适配ARM64飞腾平台、或要启用特定编译选项(如开启SSL3、禁用zlib)的唯一可靠路径,不依赖网络源且可完全掌控构建过程。
确认系统类型与架构
先执行 cat /etc/os-release | grep -E "(NAME|VERSION)" 查明是桌面版(基于Debian)还是服务器版(基于RHEL/CentOS),再运行 uname -m 确认架构:x86_64 或 aarch64。这一步漏掉会导致后续下载错包——比如在飞腾机器上误下amd64源码,configure阶段就会报“no acceptable C compiler found”。
若输出为 aarch64,所有依赖包、编译参数、安装路径均需按ARM64生态处理;若为 x86_64,则注意某些国产化中间件仅提供aarch64预编译二进制,源码可能未适配。
安装基础编译依赖
桌面版(Kylin Desktop V10 SP1+)执行:sudo apt install -y build-essential libx11-dev libxext-dev libxrender-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev libglib2.0-dev libgtk-3-dev python3-dev
服务器版(Kylin Server V10 SP3)执行:sudo yum groupinstall "Development Tools" && sudo yum install -y gcc-c++ openssl-devel pcre-devel zlib-devel libxml2-devel sqlite-devel
缺少 python3-dev 会导致 configure 检测不到 Python 支持,后续 make 时在扩展模块处静默失败;缺少 openssl-devel 则 Git、CMake 等软件编译会直接中断并提示 “ssl.h: No such file or directory”。
解压并进入源码目录
切换到源码包所在路径,例如:cd ~/Downloads
执行标准解压命令:tar -xJvf software-1.2.3.tar.xz(.tar.xz)或 tar -zxvf software-1.2.3.tar.gz(.tar.gz)
用 ls -d */ 查看生成的目录名,再进入:cd software-1.2.3。不要跳过这步——有些源码包解压后嵌套多层目录(如 git-2.40.0/src/),直接在顶层运行 ./configure 会找不到 configure 脚本。
配置编译参数
方法一:使用标准 configure 脚本(适用于大多数 GNU 项目)
运行:./configure --prefix=/usr/local --enable-shared --disable-static
其中 --prefix=/usr/local 是关键,避免写入 /usr(该路径受系统包管理器保护,sudo make install 可能被拒绝或覆盖系统文件);--enable-shared 启用动态库,否则部分软件(如 OpenSSL)安装后无法被其他程序调用。
方法二:使用 cmake(适用于 CMakeLists.txt 项目)
运行:mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
注意 cmake 命令必须在独立 build 目录中执行,直接在源码根目录运行会污染源码树,且后续修改参数需手动删掉 CMakeCache.txt 和 CMakeFiles/ 才能生效。
编译与安装
第一步:并行编译加速
执行:make -j$(nproc)。使用全部 CPU 核心可缩短 60% 以上编译时间;若省略 -j 参数,单线程编译 OpenSSL 这类项目可能耗时 20 分钟以上。
第二步:安装到系统
执行:sudo make install。这一步不可跳过用户权限验证——即使当前用户在 sudoers 中,也必须显式加 sudo,否则会提示 “Permission denied” 写入 /usr/local/bin。
第三步:刷新动态库缓存(仅限含 .so 库的软件)
若软件安装了共享库(如 /usr/local/lib/libcrypto.so),必须执行:echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf && sudo ldconfig -v。否则运行时会报错 “error while loading shared libraries: libxxx.so: cannot open shared object file”。











