【问题标题】:Can I remove directory after $git clone and $make install我可以在 $git clone 和 $make install 之后删除目录吗
【发布时间】:2016-01-31 18:02:59
【问题描述】:

我自己写了一个小脚本来在 ubuntu14.04 下安装 opencv。在make install 将库分类到系统目录后,我可以删除目录 3party 还是存在依赖关系? (不仅要删除 MYBUILD,还要删除完整的 3party)

echo "\nInstall OpenCV?...<any key>\n"
read inp1; # $inp1
mkdir 3party;

cd 3party;
git clone https://github.com/Itseez/opencv.git
    cd opencv;
    mkdir MYBUILD;
    cd MYBUILD;
    #sudo mkdir -p /usr/local/lib/opencv;
    cmake -L -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local .. ;
    echo"check if path is ok?...<any key> or abort";
    read inp1; # $inp1
    make;
    #sudo mkdir -p /usr/local/lib/opencv;
    make install;

cd ../../..;
chmod -R 777 3party;
echo "\nDone.\nPlease exit...<any key>";

编辑:我确实标记了它 cmake,因为配置步骤是使用 this 构建工具执行的。 OpenCV 网站上的tutorial 也说明了这一点。如有错误请指正。

使用 CMake 从源代码构建 OpenCV,使用命令行

【问题讨论】:

  • 安装后可以删除3party。但是这个问题与 CMake 或 make 有什么关系呢?糟糕的标签,糟糕的问题。投反对票。
  • 我投票结束这个问题,因为它与编程无关。

标签: cmake makefile installation


【解决方案1】:

通常,在安装任何软件包后,可以安全地删除其源目录和二进制目录。 OpenCV 也遵循这个约定。

【讨论】:

  • 应该指出的是,如果您曾经想要卸载您刚刚从具有原始源目录的源安装的版本是最简单的方法这样做(假设项目有一个合理的“卸载”目标)。
  • @EtanReisner:拥有make uninstall 是一种 的做法。但不是通用 的做法。例如,CMake 没有内置的 uninstall 目标。其他一些项目有uninstall 脚本,已安装。最后,卸载东西不是最常见的用法。我不确定是否值得在这里注意make uninstall
  • 一个uninstall 目标应该是默认的。我认为这是另一个糟糕的 CMake 决定,如果它不是标准的(特别是因为他们处理生成 Makefile 并且可以相当简单地(我认为)创建匹配的安装程序(或至少尝试一个)。卸载脚本不是不常见但仍然很不幸,并且仍然使保留原始来源成为一个好主意。并且卸载应该是完全常见的,因为它也应该是升级的一部分(除非其他一些管理工具也在使用中) .
  • 是的,CMake 允许简单地 create uninstall 目标。请注意,这样的目标不仅需要源文件,还需要构建树(至少需要一个文件)。但是也可以创建uninstall 脚本并将其安装在make install 进程中,因此该脚本不需要源代码或构建树即可工作。同样,我同意 make uninstall的东西,但它不是强烈要求安装的文件不依赖于源文件和构建文件的存在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多