Linux Virtual Delivery Agent

Create a Python3 virtual environment

If you are connecting to the network, running the sudo /opt/Citrix/VDA/bin/xdping or /opt/Citrix/VDA/sbin/enable_ldaps.sh command can create a Python3 virtual environment. However, if the commands fail to create a Python3 virtual environment, you can create it manually even without a network connection. This article details the prerequisites and steps to create a Python3 virtual environment without a network connection.

Prerequisites

  • You must have administrative privileges to access the /opt/Citrix/VDA/sbin/ctxpython3 directory.
  • The wheel files of Python3 packages are in place. You can download the wheel files from https://pypi.org/.

Create a Python3 virtual environment

Complete the following steps to create a Python3 virtual environment:

  1. Install Python3 dependencies.

    For Amazon Linux 2:

    yum -y install python3 python3-devel krb5-devel gcc
    <!--NeedCopy-->
    

    For RHEL and Rocky Linux:

    yum -y install python3-devel krb5-devel gcc
    <!--NeedCopy-->
    

    Note:

    You might have to enable a particular repository to install some dependencies. For RHEL 7, run the subscription-manager repos --enable rhel-7-server-optional-rpms command. For RHEL 8, run the subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms command.

    For Debian, Ubuntu:

    apt-get -y install python3-dev python3-pip python3-venv libkrb5-dev
    <!--NeedCopy-->
    

    For SUSE:

    zypper -n install lsb-release python3-devel python3-setuptools krb5-devel gcc libffi-devel libopenssl-devel
    <!--NeedCopy-->
    
  2. Create a Python3 virtual environment.

    Note:

    To address SSL connection errors that you might encounter when using the pip tool, consider adding the following trusted hosts to the /etc/pip.conf file:
    [global]
    trusted-host =
    pypi.org
    files.pythonhosted.org

    For Amazon Linux 2, Debian, RHEL, Rocky Linux, Ubuntu:

    sudo python3 -m venv /opt/Citrix/VDA/sbin/ctxpython3
    <!--NeedCopy-->
    

    For SUSE:

    sudo ln -s /usr/lib/mit/bin/krb5-config /usr/bin/krb5-config
    
    export PATH=$PATH:/usr/lib/mit/bin:/usr/lib/mit/sbin
    
    sudo mkdir -p /usr/lib/mit/include/gssapi/
    
    sudo ln -s /usr/include/gssapi/gssapi_ext.h/usr/lib/mit/include/gssapi/gssapi_ext.h
    
    sudo python3 -m venv /opt/Citrix/VDA/sbin/ctxpython3
    <!--NeedCopy-->
    
  3. Install LDAPS dependencies.

    sudo /opt/Citrix/VDA/sbin/ctxpython3/bin/python3 -m pip install --upgrade pip==21.3.1
    
    sudo /opt/Citrix/VDA/sbin/ctxpython3/bin/python3 -m pip install cffi==1.15.0 cryptography==36.0.2 decorator==5.1.1 gssapi==1.7.3 ldap3==2.9.1 pyasn1==0.4.8 pycparser==2.21 six==1.16.0
    <!--NeedCopy-->
    
  4. Install XDPing dependencies.

    sudo /opt/Citrix/VDA/sbin/ctxpython3/bin/python3 -m pip install --upgrade pip==21.3.1
    
    sudo /opt/Citrix/VDA/sbin/ctxpython3/bin/python3 -m pip install asn1crypto==1.5.1 cffi==1.15.0 cryptography==36.0.2 decorator==5.1.1 gssapi==1.7.3 ldap3==2.9.1 netifaces==0.11.0 packaging==21.3 pg8000==1.26.0 psutil==5.9.0 pyasn1==0.4.8 pycparser==2.21 pyparsing==3.0.8 scramp==1.4.1 six==1.16.0 termcolor==1.1.0
    
    sudo /opt/Citrix/VDA/sbin/ctxpython3/bin/python3 -m pip install /opt/Citrix/VDA/sbin/ctxpython3/packages/xdping-*.whl
    <!--NeedCopy-->
    
Create a Python3 virtual environment