簡體   English   中英

我可以刪除從 Source 構建 NodeJS 時安裝的構建依賴項(例如 g++、gcc、libstdc++6 等)嗎?

[英]Can I remove the build dependencies installed when building NodeJS from Source (such as g++, gcc, libstdc++6, etc )?

我在 ubuntu-slim 圖像上從源代碼構建了 NodeJS。 當你這樣做時,它需要在過程中安裝大量 package,例如(例如。下面是 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,我們可以刪除這些構建依賴項嗎?

完成 Node14 的構建后,我發現:

  1. 是的,您可以在 node 完全安裝后刪除構建依賴項 我通過安裝 Node14 在 Ubuntu20 操作系統平台上專門證明了這一點。 對此的一個警告是,您使用 Node 而無需安裝本機軟件包(當 package 為npm install時,本機節點軟件包需要針對操作系統進行二進制編譯 - 例如 node-sass) - 這些並不常見,所以大多數使用Node 不需要這個。
  2. 如何刪除包 我發現卸載已安裝的apk-get軟件包就像使用apk-get purge一樣簡單。 下面的示例(使用 shell 腳本在 Dockerfile 內構建節點)給出了一些細節。
    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.js。
  • 命令apt-get clean清除保留在 /var/cache 中的檢索到的 package 文件的本地存儲庫。
  • 命令apt-get autoremove刪除自動安裝的軟件包,因為其他一些 package 需要它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM