Linux 版本工具链的支持与安装
仓颉工具链当前基于以下 Linux 发行版进行了完整功能测试:
- SUSE Linux Enterprise Server 12 SP5
- Ubuntu 18.04
- Ubuntu 20.04
适用于各 Linux 发行版的仓颉工具链依赖安装命令
注意:
当前仓颉工具链依赖的部分工具在一些 Linux 发行版上可能无法通过系统默认软件源直接安装,可以参考下一节编译安装依赖工具进行手动安装。
SUSE Linux Enterprise Server 12 SP5
$ zypper install \
binutils \
glibc-devel \
gcc-c++
此外,还需要安装 OpenSSL 3,安装方法请参考编译安装依赖工具。
Ubuntu 18.04
$ apt-get install \
binutils \
libc-dev \
libc++-dev \
libgcc-7-dev
此外,还需要安装 OpenSSL 3,安装方法请参考编译安装依赖工具。
Ubuntu 20.04
$ apt-get install \
binutils \
libc-dev \
libc++-dev \
libgcc-9-dev
此外,还需要安装 OpenSSL 3,安装方法请参考编译安装依赖工具。
其他 Linux 发行版
根据使用的 Linux 发行版的不同,可能需要参考以上系统的依赖安装命令,使用系统包管理工具安装对应依赖。若使用的系统没有提供相关软件包,可能需要自行安装链接工具、C 语言开发工具、C++ 开发工具、GCC 编译器、以及 OpenSSL 3 以正常使用仓颉工具链。
编译安装依赖工具
当前仓颉工具链中的部分标准库(以及部分工具)使用了 OpenSSL 3 开源软件。对于系统包管理工具未提供 OpenSSL 3 的场景,用户可能需要源码编译安装 OpenSSL 3,本节提供了 OpenSSL 3 源码编译的方法和步骤。
OpenSSL 3
从以下链接可以下载到 OpenSSL 3 的源码:
建议使用 OpenSSL 3.0.7 或更高版本。
注意:
请在执行以下编译和安装命令前仔细阅读注意事项,并根据实际情况调整命令。不正确的配置和安装可能会导致系统其他软件不可用。如果在编译安装过程中遇到问题或希望进行额外的安装配置,请参考 OpenSSL 源码中的
INSTALL
文件或 OpenSSL 的 FAQ。
此处以 OpenSSL 3.0.7 为例,下载后使用以下命令解压压缩包:
$ tar xf openssl-3.0.7.tar.gz
解压完成后进入目录:
$ cd openssl-3.0.7
编译 OpenSSL:
注意:
如果系统已经安装了 OpenSSL,建议使用
--prefix=<path>
选项指定一个自定义安装路径,例如--prefix=/usr/local/openssl-3.0.7
或开发者的个人目录。在系统目录已经存在 OpenSSL 的场景下直接使用以下命令编译安装可能会使系统 OpenSSL 被覆盖,并导致依赖系统 OpenSSL 的应用不可用。
$ ./Configure --libdir=lib
$ make
测试 OpenSSL:
$ make test
将 OpenSSL 安装至系统目录(或先前指定的 --prefix
目录),可能需要提供 root 权限以成功执行以下命令:
$ make install
或
$ sudo make install
如果先前编译 OpenSSL 时没有通过 --prefix
设置自定义安装路径,则 OpenSSL 安装已经完成了。如果先前通过 --prefix
指定了自定义的安装路径,还需要设置以下变量,以使仓颉工具链可以找到 OpenSSL 3。
注意:
如果系统中原先存在其他版本的 OpenSSL,通过以下方式配置后,除了仓颉工具链外,其他编译开发工具默认使用的 OpenSSL 版本也可能受到影响。如果使用其他编译开发工具时出现 OpenSSL 不兼容的情况,请仅为仓颉开发环境配置以下变量。
请将 <prefix>
替换为指定的自定义安装路径。
$ export LIBRARY_PATH=<prefix>/lib:$LIBRARY_PATH
$ export LD_LIBRARY_PATH=<prefix>/lib:$LD_LIBRARY_PATH
通过以上方式所配置的环境变量仅在当前执行命令的 shell
会话窗口有效。若希望 shell
每次启动时都自动配置,可以在 $HOME/.bashrc
、$HOME/.zshrc
或其他 shell
配置文件(依开发者的 shell
种类而定)加入以上命令。
若希望配置可以默认对所有用户生效,可以执行以下命令:
请将 <prefix>
替换为指定的自定义安装路径。
$ echo "export LIBRARY_PATH=<prefix>/lib:$LIBRARY_PATH" >> /etc/profile
$ echo "<prefix>/lib" >> /etc/ld.so.conf
$ ldconfig
执行完毕后重新打开 shell
会话窗口即可生效。
至此,OpenSSL 3 已经成功安装,可以回到原来的章节继续阅读或尝试运行仓颉编译器了。