如何在 OpenFOAM docker-machine - boot2docker: bash: tce-load: command not found 上安装包

How to install packages on OpenFOAM docker-machine - boot2docker: bash: tce-load: command not found

我正在尝试在 the OpenFOAM docker-machine image 上安装一些基于 boot2docker 的软件包。当 运行 uname -a 命令时,我得到信息:

Linux default 4.4.111-boot2docker #1 SMP Thu Jan 11 16:25:31 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

this page 中已经解释了 boot2docker 发行版是基于 Tiny Core Linux 发行版的,所以要安装一个包必须:

  1. 检查the Tiny Core Linux software repository page
  2. 使用命令tce-load -w -i packagename.tcz安装

我按照这些步骤安装了 git。但我收到错误:

bash: tce-load: command not found

我进行了搜索,并按照说明提供了 here apparently the official repository is offline. There a list of mirrors。但是我不知道如何从这些镜像安装包!

P.S。或者,OP 的 a bizarre answer 已被投票,但尚不清楚 he/she 对 运行 boot2docker ssh

的含义

如果您能帮助我了解问题所在以及如何解决,我将不胜感激。

2021 年 12 月更新:

现在我对 uname -a returns 的作用有了更好的理解。基本上,所有 docker 容器与主机 Linux OS (reference). To know what is the container's OS, a safe option is the cat /etc/issue (reference) 共享相同的内核。此外,似乎一些新的“官方”OpenFOAM 容器是基于 Ubuntu,没有任何管理员密码。因此,可以使用 apt/apt-get/...

安装新软件包

new/correct:

感谢 Pawan Ghildiyal from ESI Group and Karen Kettle from OpenCFD Limited 我找到了正确的解决方案。

似乎整个 OpenFOAM docker 图像都是基于 CentOS 而不是 boot2docker 并且可以使用 yum 轻松安装新包!因为启用docker到运行的小虚拟盒子接口被命名为boot2docker它returns当被uname -a询问时被命名为boot2docker。 您只需要在 docker 终端中使用 root 用户:

  1. 运行 Docker QuickStart Terminal(我用的是windows)
  2. docker start of_1712
  3. docker exec -ti of_1712 /bin/bash
  4. su - 然后是默认密码,在本例中为 fuser2017!
  5. yum install packageName

old/wrong:

如前所述,here it turns out that Docker deprecates the Boot2Docker command line in favor of docker-machine. So the answer provided here 也已贬值。

解法:

  1. 使用命令 docker-machine ssh machinename(在我的例子中 machinenamedefault)连接到 docker-机器映像。

  2. 如说明here run the command version and look for the package name in the right repository. in my case the version is 8.2.1 and the repository is http://repo.tinycorelinux.net/8.x/x86/tcz/

  3. 然后 运行 命令 tce-load -w -i packagename.tcz.

由于某种原因,OpenFOAM 团队提供的官方 OpenFOAM_Start 批处理文件不起作用!