Deno की बिल्ड आवश्यकताएँ RAM 16GiB लगती हैं, लेकिन मैं इसे RAM 8GiB के साथ दृढ़ता से बनाना चाहता हूँ
नमस्ते, मैं एक अक्षम व्यक्ति हूँ।
जब मैंने इसे स्वयं थोड़ा सा छेड़छाड़ करके बनाने की कोशिश की,
error: linking with `cc` failed: exit status: 1
तो यह त्रुटि आई और संकलन विफल रहा।
सामान्य रूप से, यह एक त्रुटि लगती है जो तब आती है जब लिंकर कुछ गड़बड़ कर रहा होता है, लेकिन खोज करने पर भी मुझे कुछ नहीं मिला।
उत्तर syslog में है
खैर, मैं अपने होम सर्वर पर Devuan मशीन से SSH के माध्यम से कनेक्ट करके इसे बना रहा था, लेकिन यह भी काम नहीं किया।
और फिर, संयोग से, मैं Devuan मशीन की स्क्रीन को मॉनिटर पर आउटपुट कर रहा था, और त्रुटि आउटपुट किसी तरह... OOM किलर?
$ sudo cat /var/log/syslog | grep "Out of memory"
Oct 13 11:50:16 localhost kernel: [227399.170721] Out of memory: Killed process 8309 (ld) total-vm:2711000kB, anon-rss:2682476kB, file-rss:1608kB, shmem-rss:0kB, UID:1000 pgtables:5352kB oom_score_adj:0
Oct 13 12:38:52 localhost kernel: [230315.610776] Out of memory: Killed process 9472 (ld) total-vm:2883664kB, anon-rss:2872404kB, file-rss:1468kB, shmem-rss:0kB, UID:1000 pgtables:5704kB oom_score_adj:0
Oct 13 16:34:15 localhost kernel: [244437.896036] Out of memory: Killed process 9979 (ld) total-vm:2195452kB, anon-rss:2187944kB, file-rss:1604kB, shmem-rss:0kB, UID:1000 pgtables:4348kB oom_score_adj:0
$ date
2024年 10月 13日 日曜日 16:48:12 JST
ऐसा लगता है कि मेमोरी कम होने के कारण संकलन के दौरान शुरू की गई प्रक्रियाएँ समाप्त हो रही हैं और संकलन विफल हो रहा है।
मैंने पहले ही एक इश्यू बना दिया था, लेकिन
cargo test -vv faild on Arch/Artix Linux #26191
आधिकारिक स्रोत से बनाने की आवश्यकताओं में यह नहीं लिखा था, लेकिन ऐसा लगता है कि बिल्ड की न्यूनतम आवश्यकता RAM 16GiB है...।
जब मैंने अपने कस्टम-बिल्ट पीसी पर इसे बनाने की कोशिश की, जिसमें लगभग 40GiB RAM है, तो यह सफल रहा...।
मैं किसी भी तरह Deno को RAM 8GiB वातावरण में संकलित करना चाहता हूँ!!
अंत में, यदि आप केवल deno बाइनरी को पास करना चाहते हैं, तो जैसा कि मुझे इश्यू में बताया गया था,
cargo build -p deno --bin deno
यह ठीक लगता है, लेकिन यह अभी भी अक्सर विफल रहता है।
इसलिए, मैंने मेमोरी उपयोग को कम करने के तरीकों की तलाश की...
CARGO_BUILD_JOBS=1 cargo build -p deno --bin deno -j 1
शायद यह धीमा होगा, लेकिन यदि आप इसे एक बार सामान्य रूप से बनाते हैं, और OOM Killer के होने के बाद ऊपर दिए गए तरीके का उपयोग करते हैं, तो यह कैश का उपयोग करके बनाएगा, इसलिए यह अपेक्षाकृत जल्दी समाप्त हो जाएगा।
बिल्ड के लिए जॉब को 1 तक सीमित किया गया है, और उपयोग किए जाने वाले CPU के संकलन थ्रेड को 1 पर सेट किया गया है, इसलिए संकलन करते समय अन्य चल रही प्रक्रियाओं पर कम प्रभाव पड़ता है, और मुझे लगता है कि यह एक अच्छा पर्यावरण चर/विकल्प विनिर्देश है। हालाँकि, यह धीमा है...।
तो फिर मिलते हैं।
कृपया मेरा ध्यान रखें।