【问题标题】:Compiling a file leaves files in my home directory when doing vagrant provision在进行 vagrant 配置时,编译文件会将文件留在我的主目录中
【发布时间】:2015-10-29 03:27:23
【问题描述】:

我正在使用 Vagrant 来设置一个 linux 机器。我需要将我编译的文件添加到系统中,我使用以下命令 -

sudo git clone https://github.com/thewtex/tmux-mem-cpu-load.git /tmp/tmuxcpu
sudo cmake /tmp/tmuxcpu
sudo make clean /tmp/tmuxcpu
sudo make install clean /tmp/tmuxcpu

但是,这会在 /home/vagrant/ 文件夹中留下大量文件,包括 makefile、配置文件和其他垃圾。如何从 tmp 制作和安装,而不会在主目录中乱扔垃圾?

上述命令有效,但它在 /home/vagrant 文件夹中留下了大量我不想要的文件。是否可以在不离开“垃圾”的情况下进行 cmake、make 和 make install?

【问题讨论】:

  • 为 cmake/etc 创建一个“build”目录。操作和使用它而不是默认的主目录?此外,一般来说,您不应该或不需要以 root 身份运行 cmakemake(用于编译步骤)。
  • 那么我是否需要让 vagrant 以某种方式将其用户 cd 到 /tmp 以便我可以从那里构建?我试过了,但似乎在每个命令之后,“流浪用户”都会自动返回家中。
  • 这意味着每个命令都在单独的 shell 中执行,因此您需要执行sudo sh -c 'cd /tmp/tmpxcpu && cmake' 等操作。目前/tmp/tmuxcpu 参数可能只是被忽略了。
  • @reinierpost 该论点没有被忽略。它是构建的源泉。 cmake 使用当前目录作为“构建”目录,并将构建源作为参数。 (这是 srcdir != builddir 在常用的 autotools 用语中。)
  • 但是 make 调用可能对它没有任何用处。

标签: c++ makefile vagrant vagrantfile


【解决方案1】:

在 Etan Reisner 和 reinierpost 的帮助下,我已经解决了我的问题。

## CPU LOAD
sudo git clone https://github.com/thewtex/tmux-mem-cpu-load.git /tmp/tmuxcpu
sudo sh -c "cd /tmp/tmuxcpu && sudo cmake . && sudo make && sudo make install";

我的安装脚本现在使用上述命令,这解决了我的问题。通过将文件保存在 /tmp 中,它们会在我重新启动机器时被删除。我现在在 vagrant 设置期间将此技术用于其他几个项目,并且效果很好。这为我解决了许多问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-17
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多