安装步骤(SLES 12.5)

检查源

安装过程需要下载相关依赖,请确保安装环境能够连接网络。

请在root用户下执行如下命令检查源是否可用。

zypper ref

如果命令执行报错或者后续安装依赖时等待时间过长甚至报错,可参考以下操作配置本地源。

请以root用户执行如下操作。

  1. 挂载系统镜像iso文件(以下命令为示例)。
    mount -o loop SLE-12-SP5-Server-DVD-x86_64-GM-DVD1.iso /mnt
  2. 使用ar参数添加一个mnt路径下挂好的本地源,并命名为suse(用户可自定义)。
    zypper ar -f /mnt suse
  3. 清空zypper缓存,刷新源,使配置的源生效。
    zypper clean
    zypper ref

配置安装用户权限

可使用root或非root用户(该非root用户需与软件包安装用户保持一致)安装依赖,如果使用非root用户安装,可能需要用到提权命令,请用户自行获取所需的sudo权限。使用完成后请取消涉及高危命令的权限,否则有sudo提权风险。

安装依赖

  1. 检查系统是否安装python依赖以及gcc等软件。

    分别使用如下命令检查是否安装gcc,make以及python依赖软件等。

    rpm -qa | grep gcc
    rpm -qa | grep make
    rpm -qa | grep unzip
    rpm -qa | grep zlib-devel
    rpm -qa | grep openssl-devel
    rpm -qa | grep pciutils
    rpm -qa | grep net-tools
    rpm -qa | grep gdbm-devel
    rpm -qa | grep libffi-devel

    若分别返回如下信息则说明已经安装,进入下一步(以下回显仅为示例,请以实际情况为准)。

    gcc48-4.8.5-31.20.1.x86_64
    libgcc_s1-8.2.1+r264010-1.3.3.x86_64
    gcc-4.8-6.189.x86_64
    libgcc_s1-32bit-8.2.1+r264010-1.3.3.x86_64
    gcc-c++-4.8-6.189.x86_64
    gcc48-c++-4.8.5-31.20.1.x86_64
    cmake-3.5.2-20.6.1.x86_64
    makedumpfile-1.6.5-1.19.x86_64
    automake-1.13.4-6.2.noarch
    make-4.0-4.1.x86_64
    unzip-6.00-33.8.1.x86_64
    zlib-devel-1.2.11-3.21.1.x86_64
    zlib-devel-32bit-1.2.11-3.21.1.x86_64
    zlib-devel-static-1.2.11-3.21.1.x86_64
    zlib-devel-1.2.11-9.42.x86_64
    zlib-devel-static-32bit-1.2.11-3.21.1.x86_64
    libopenssl-devel-1.0.2p-1.13.noarch
    pciutils-3.2.1-11.3.1.x86_64
    pciutils-ids-2018.02.08-12.3.1.noarch
    net-tools-1.60-765.5.4.x86_64
    gdbm-devel-1.10-9.70.x86_64
    libffi-devel-3.2.1.git259-10.8.x86_64

    否则请执行如下安装命令(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可):

    • 如果使用root用户安装依赖,请将步骤1至步骤2命令中的sudo删除。
    • 如果python及其依赖是使用非root用户安装,则需要执行su - username命令切换到非root用户继续执行步骤1至步骤3
    sudo zypper install -y gcc gcc-c++ make cmake unzip zlib-devel openssl-devel pciutils net-tools gdbm-devel

    由于本地源中缺少libffi-devel依赖,可从opensuse镜像源中下载libffi-devel-3.2.1.git259-10.8.x86_64.rpm、libffi7-3.2.1.git259-10.8.x86_64.rpm、libffi7-32bit-3.2.1.git259-10.8.x86_64.rpm(软件包会定时更新,请以实际rpm包名为准)并一同上传至服务器某一目录下(如“/home/test”)。

    进入rpm包所在路径(如“/home/test”),执行如下命令安装所需依赖:

    sudo rpm -ivh *.rpm --nodeps

  2. 检查系统是否安装满足版本要求的python开发环境(具体要求请参见依赖列表,此步骤以环境上需要使用python 3.7.x为例进行说明)。

    执行命令python3 --version,如果返回信息满足python版本要求(3.7.0~ 3.7.11),则直接进入下一步。如果环境上已安装过满足要求的python,则可以直接从2.d开始执行。

    否则可参考如下命令安装python(以python3.7.5为例)。

    1. 使用wget下载python3.7.5源码包,可以下载到安装环境的任意目录,命令为:
      wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
    2. 进入下载后的目录,解压源码包,命令为:
      tar -zxvf Python-3.7.5.tgz
    3. 进入解压后的文件夹,创建安装目录,执行配置、编译和安装命令:
      cd Python-3.7.5
      ./configure --prefix=/usr/local/python3.7.5 --enable-loadable-sqlite-extensions --enable-shared
      make
      sudo make install

      其中“--prefix”参数用于指定python安装路径,用户根据实际情况进行修改,“--enable-shared”参数用于编译出libpython3.7m.so.1.0动态库。

      本手册以--prefix=/usr/local/python3.7.5路径为例进行说明。执行配置、编译和安装命令后,安装包在/usr/local/python3.7.5路径,libpython3.7m.so.1.0动态库在/usr/local/python3.7.5/lib/libpython3.7m.so.1.0路径。

    4. 设置python3.7.5环境变量。
      #用于设置python3.7.5库文件路径
      export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
      #如果用户环境存在多个python3版本,则指定使用python3.7.5版本
      export PATH=/usr/local/python3.7.5/bin:$PATH

      通过以上export方式设置环境变量,该种方式设置的环境变量只在当前窗口有效。您也可以通过将以上命令写入~/.bashrc文件中,然后执行source ~/.bashrc命令,使上述环境变量永久生效。注意如果后续您有使用环境上其他python版本的需求或者安装python3.7.5前系统默认python3版本就为3.7.x,则不建议将以上命令写入到~/.bashrc文件中。

    5. 安装完成之后,执行如下命令查看安装版本,如果返回相关版本信息,则说明安装成功。
      python3 --version
      pip3 --version

  3. 安装前请先使用pip3 list命令检查是否安装相关依赖,若已经安装,则请跳过该步骤;若未安装,则安装命令如下(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可)。

    • 请在安装前配置好pip源,具体可参考配置pip源
    • 安装前,建议执行命令pip3 install --upgrade pip进行升级,避免因pip版本过低导致安装失败。
    • 如下命令如果使用非root用户安装,需要在安装命令后加上--user,例如:pip3 install attrs --user,安装命令可在任意路径下执行。
    pip3 install attrs
    pip3 install numpy
    pip3 install decorator
    pip3 install sympy
    pip3 install cffi
    pip3 install pyyaml
    pip3 install pathlib2
    pip3 install psutil
    pip3 install protobuf
    pip3 install scipy
    pip3 install requests
    pip3 install gnureadline