【问题标题】:Can I remove the build dependencies installed when building NodeJS from Source (such as g++, gcc, libstdc++6, etc )?我可以删除从 Source 构建 NodeJS 时安装的构建依赖项(例如 g++、gcc、libstdc++6 等)吗?
【发布时间】:2022-01-31 15:44:41
【问题描述】:

我在 ubuntu-slim 图像上从源代码构建了 NodeJS。当你这样做时,它需要在过程中安装大量的包,例如(例如。下面是 Node16 依赖项)

&& apt-get install --yes \
    libstdc++6 \
... 
...
    && apt-get install --yes \
        binutils-gold \
        g++ \
        gcc \
        gnupg \
        libgcc-7-dev \
        linux-headers-generic \
        make \
        python3 \

完成所有内容的安装和配置后,我可以简单地删除这些构建依赖项吗? 图像已经广泛增长,我需要尝试清理尽可能多的脂肪。当然,我仍然希望 NodeJS 运行我的节点应用程序。

NodeJS 14 也发生了同样的过程,我猜 NodeJS 18.. 我们可以在构建 NodeJS 后删除这些构建依赖项吗?

【问题讨论】:

    标签: node.js ubuntu installation dockerfile apt


    【解决方案1】:

    在完成 Node14 的构建后,我发现:

    1. 是的,您可以在 node 完成后删除构建依赖项 已安装。我专门在 Ubuntu20 OS 平台上证明了这一点 安装 Node14。对此的一个警告是您正在使用 Node 无需安装原生包(原生节点包 当包为 npm installed- 例如 node-sass 时,需要针对操作系统进行二进制编译 - 这些并不常见,所以大多数 Node 的使用不需要这个。
    2. 如何删除软件包。我发现卸载 apk-get 安装的软件包就像使用一样简单 apk-get purge。下面的示例(在 Dockerfile 中构建节点 使用 shell 脚本)给出了一些细节。
        echo "Building from source" \
        && NODE_BUILD_PACKAGES="binutils-gold g++ gcc libgcc-7-dev linux-headers-generic make python3" \
        && apt-get install --yes ${NODE_BUILD_PACKAGES} \
    ...
    ...
    [code to build node]
    ...
        && apt-get purge --yes ${NODE_BUILD_PACKAGES} \
        && apt-get clean \
        && apt-get autoremove --yes \
    

    在从源代码构建 Node 后,我使用这三个命令来清除构建机器。为清楚起见,以下是每个命令的作用:

    • 命令apt-get purge 删除我安装的包 我可以构建 Node。
    • 命令apt-get clean 清除已检索的本地存储库 留在 /var/cache 中的打包文件。
    • 命令apt-get autoremove 删除以前的包 自动安装,因为其他一些软件包需要它们。

    【讨论】:

      猜你喜欢
      • 2021-08-17
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      相关资源
      最近更新 更多