1

我一直在为我的项目构建 debian 包。

当用户安装我的包时,我的项目的二进制文件安装在/usr/bin/*. 然后,在最后调用一个 bash 脚本,该脚本创建 python 虚拟环境/usr/share/my_proejct/venv并在该虚拟环境上安装所需的 python 包。

$ sudo dpkg -i my_project.deb
# being installed on /usr/bin/*
# automatically `sudo post_install.sh` is invoked(debian postinst)
$ cat post_install.sh
python3 -m pip install -U virtualenv        # sudo
python3 -m venv /usr/share/my_project/venv  # sudo
/usr/share/my_project/venv/bin/python -m pip install ${REQUIRED_PACKAGES}

我的项目的二进制文件正在使用该虚拟环境的 python。

  1. AFAIK,使用 sudo 运行 pip 存在安全问题。但是我只是直接使用 virtualenv 的 python( /usr/share/my_project/venv/bin/python);我仍然virtualenv使用 sudo 安装并venv使用它创建。还危险吗?

  2. 我可以将这个虚拟环境的 python 用于多个用户吗?

4

0 回答 0