将Anaconda安装从一个用户帐户转移到另一个用户帐户

SVill

如果这不是正确的网站,我深表歉意。如果不是,请告诉我。

这是我正在尝试的背景。我们正在开发一系列将要投入生产的聊天机器人。它们每个都将在Anaconda的环境中运行。但是,我们的设置使用tensorflow,后者使用gcc进行编译,并且合规性禁止编译器投入生产。此外,在生产中使用pip或conda安装程序也违反了合规性规则。

作为解决此问题的一种方法,我试图将Anaconda 3文件夹压缩为tar,然后将其移至prod,同时已编译并安装了所有依赖项。但是,环境之间的帐户具有不同的名称,因此这需要我进入bin文件夹(至少;我确定也需要在lib和pckg文件夹中更改它们)并用于sed -i重命名硬编码路径,从点\home\<dev account>\anaconda\home\<prod account>\anaconda,虽然这似乎是工作,其也是一个不错的办法裂伤我安装。

我的问题如下:

  1. 有什么好方法可以将anaconda从一个用户转移到另一个用户,而不必sed -i在这些路径上使用我已经读过Anaconda本身不支持此功能,但是我希望您的输入。
  2. 有什么方法可以在开发人员中安装anaconda,以便其中的脚本经过硬编码以在其路径中使用生产帐户名称,也可以使用~
  3. 如果我必须继续使用sed,我应该注意哪些重要事项?例如,当我使用时grep <dev account> *,我会将一些文件列为binary file matches我需要做一些特别的事情来改变这些吗?

再一次,我很清楚我应该只在生产机器上创建一个新的Anaconda安装,但这根本不是一个选择。

编辑:到目前为止,我已经更改了/ etc中的conda.sh和conda.csh文件,以及根目录下的conda,激活和停用文件。因此,我可以在新用户帐户上激活和停用我的环境。另外,我还更改了机器人环境下bin文件夹中的文件。现在,我正在尝试训练该机器人以测试它是否有效,但是它一直失败,并指出列表中不存在自定义操作。不过,我认为这与此无关。

Edit2:我已经确认我得到的错误与此无关。为了使bot能够与Anaconda的移植版本一起正常工作,我所要做的就是更改/ etc中的conda.sh和conda.csh文件,因此它们到python的路径使用〜,对activate和停用/ bin中的文件,然后将/ bin中的conda文件中的shebang行更改为使用实际帐户名。这样,/ bin和lib中的所有其他文件仍会在其shebang行中使用旧帐户名以及其他使用该路径的变量,但这些bot仍能按预期工作。依我所有的权利,我认为这不起作用,但确实如此。

罗兰·韦伯

Anaconda对路径名不满意。它们显然已插入脚本中,但也可能会插入二进制文件中。我想到的一些方法是:

  1. 在生产中使用Docker映像。构建图像时:

    • 根据需要安装编译器。
    • 建立你的东西。
    • 卸载运行时不需要的编译器和其他内容。
    • 将图像压入单个图层。
      这可以确保已卸载的内容实际上不存在。
  2. 将Anaconda安装到开发或构建系统目录中 \home\<prod account>\anaconda即使帐户不同,也应该有一种在相同位置创建用户可写目录的方法。

    • 更好的是:\opt\anaconda在所有环境中将Anaconda安装到目录中。或其他不包含用户名的目录。
  3. 如果无法在用户主目录之外获取目录,请在指向用户主目录的固定路径协商符号链接或联结(mklink.exe / d或/ j\opt\anaconda

    • 如有必要,请从QA角度进行探讨:与其他所有环境相比,生产中的目录路径不同,存在只能在生产中检测和复制的错误的风险。质量保证或操作团队应强制所有应用程序在任何地方都使用固定路径,而不是为您的应用程序设置例外;-)
  4. 使用目录在Docker容器内构建\home\<prod account>\anaconda,然后导出存档并在没有Docker的生产系统上运行。

    • 在可重现的Docker环境中进行构建通常是一个好主意,即使您可以在其中没有帐户名的情况下获得固定路径。
  5. 将整个应用程序捆绑为预编译的Anaconda软件包,以便无需编译器即可安装。

    • 但是,这实际上并不能解决您的问题,因为conda install在生产中甚至对此都不满意。但这可以简化构建Docker映像而不会造成挤压。

我一直在Docker中构建Anaconda环境,并在生产中的裸机上运行它们。但是,我们始终确保路径在环境之间相同。我发现对路径进行整顿甚至无法尝试。当我们到处切换到Docker映像时,生活变得更加简单。但是,如果您必须继续使用sed...,祝您好运:-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将应用程序从一个Admob帐户转移到另一个帐户

将回购从一个 bitbucket 帐户转移到另一个

是否可以将 kafka 用户从一个 Zookeeper 转移到另一个 Zookeeper?

如何在不重新上传服务器的情况下将YouTube视频从一个帐户转移到另一个帐户?

自动将资金从一个银行帐户转移到另一个银行帐户

将应用程序从一个Facebook开发者帐户转移到另一个Facebook开发者帐户

使用PHP将ERC20令牌从一个帐户转移到另一个帐户

在状态为“准备提交”时,iOS将应用程序从一个帐户转移到另一个帐户

如何使用 ERC721 将 NFT 从一个帐户转移到另一个帐户?

将项目转移到另一个帐户

将新包转移到另一个 GitHub 帐户

将应用程序转移到另一个Firebase帐户

Bizspark,将Azure虚拟机转移到另一个帐户

JIRA:将项目转移到另一个 Atlassian 帐户

将权限从用户转移到另一个用户

如何将所有文件从root帐户转移到另一个帐户?

GoogleApps Provisioning API可将用户从一个组织转移到另一个组织

将用户故事或错误从一个积压工作转移到另一个积压工作

将溢出的内容从一个div转移到另一个

将帖子从一个博客转移到另一个博客?

将收集对象从一个jsp转移到另一个

将数据从一个$ state转移到另一个

将变量从一个功能转移到另一个功能

Discord.js将多个用户从语音通道转移到另一个

将带有订阅的Android应用转移到另一个帐户

如何使用Javascript检查用户是否将焦点从一个特定元素转移到另一个元素?

将Google Doc附件的所有权转移到另一个帐户?

如何将Amazon S3存储桶转移到另一个帐户?

贝宝将一个用户转移到另一用户