7

我将教 10 多个人开始使用 Python,并且需要将其安装在他们自己的机器上。我选择使用 Miniconda 是因为我想要使用 iPython、matplotlib 等轻松安装 Python 3。我担心每个人同时通过网络安装会阻塞它。有没有办法提前获取所有软件包及其依赖项并将其安装在讲座中的计算机上?

编辑:我怀疑大多数将在 Windows 上运行。

4

2 回答 2

5

最简单的方法是只下载Anaconda 安装程序,并将它们保存在几个可以传递的 USB 驱动器上。对于这样的教程,这是非常标准的做法。

如果人们使用自己的计算机,您应该强烈要求人们事先安装 Anaconda。如果它们是计算机实验室计算机,请在教程之前自行安装。


作为一种更手动的方式,您可以从http://repo.continuum.io/pkgs/free/osx-64/index.html下载您需要的软件包(您可能还想为http://repo 执行此操作。 continuum.io/pkgs/free/win-32/index.html ),然后将它们打包到一个 tarball 中,然后你就可以conda install packages.tar. 不过,请确保获得所有依赖项。您可能希望使用您想要的软件包创建一个 conda 环境,以查看所有需要的内容 ( conda create -n test package1 package2 ...)。

于 2014-04-07T15:52:30.277 回答
1

不知道 miniconda,但作为其他 linux repo,你可以这样做:(来自 ubuntu 论坛: https ://askubuntu.com/questions/170348/how-to-make-my-own-local-repository )

为自己设置一个简单的存储库有 4 个步骤

1.安装dpkg-dev

2.将包放入目录

3.创建一个将扫描包的脚本并创建一个文件 apt-get update 可以读取

4.在sources.list中添加一行指向你的存储库

安装 dpkg-dev

输入终端

sudo apt-get install dpkg-dev

目录

创建一个目录,您将在其中保存您的包。对于此示例,我们将使用 /usr/local/mydebs。

sudo mkdir -p /usr/local/mydebs

现在将您的包移动到您刚刚创建的目录中。

以前下载的包通常存储在您系统的 /var/cache/apt/archives 目录中。如果您安装了 apt-cacher,您将在其 /packages 目录中存储其他软件包。

脚本更新-mydebs

这是一个简单的三班轮:

 #! /bin/bash
 cd /usr/local/mydebs
 dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

将上述内容剪切并粘贴到 gedit 中,并将其保存为 ~/bin 中的 update-mydebs。(波浪号“~”表示您的主目录。如果 ~/bin 不存在,请创建它:Ubuntu 会将该目录放在您的 PATH 中。这是放置个人脚本的好地方)。接下来,使脚本可执行:

chmod u+x ~/bin/update-mydebs

脚本的工作原理: dpkg-scanpackages查看 mydebs 中的所有包,然后将输出压缩并写入 apt-get update 可以读取的文件 (Packages.gz)(请参阅下面的参考资料,其中详细解释了这一点)。/dev/null 是一个空文件;它替代了包含一些关于包的附加信息的覆盖文件,在这种情况下,这并不是真正需要的。如果您想了解它,请参阅 deb-override(5)。

来源.list

添加行

deb 文件:/usr/local/mydebs ./ 到你的 /etc/apt/sources.list,你就完成了。

光盘选项

您可以将包含 debs 的目录刻录到 CD 并将其用作存储库(适合在计算机之间共享)。要将 CD 用作存储库,只需运行

sudo apt-cdrom add
Using the Repository

每当你在 mydebs 目录中放置一个新的 deb 时,运行

sudo update-mydebs
sudo apt-get update

现在,您的本地软件包可以使用 Synaptic、aptitude 和 apt 命令进行操作: apt-getapt-cache等。当您尝试 apt-get install 时,只要能够满足任何依赖关系,它们都会为您解决。

糟糕的软件包可能会失败,但你不会忍受 dpkg 地狱。

于 2014-04-05T07:52:20.653 回答