दो macOS वर्ज़न पीछे आए पुराने Mac mini को एनरोल करना
मशीन ठीक थी। सोलह गीगाबाइट, Apple M4, साफ़ मिटाई हुई। पर वह macOS 15.6.1 पर थी, और जो Xcode हम हर ग्राहक को देते हैं, वह 26.2 से नीचे लॉन्च नहीं होता। यहाँ बताया है कि यह कैसे पता करें, और अपग्रेड के कौन से हिस्से साफ़ नहीं दिखते। आख़िर में वह सूची है जो अब हम पुराना Mac ख़रीदने से पहले चलाते हैं।
न्यूनतम वर्ज़न ख़ुद Xcode से पढ़ें
रिलीज़ नोट्स से अंदाज़ा न लगाएँ। Xcode अपनी न्यूनतम सीमा अपनी ही property list में बताता है।
$ /usr/libexec/PlistBuddy -c "Print :LSMinimumSystemVersion" \
/Applications/Xcode.app/Contents/Info.plist
26.2इससे नीचे की मशीन ठीक से एनरोल हो जाती है, और फिर ग्राहक का पहला बिल्ड फ़ेल होता है। अब हमारी एनरोलमेंट स्क्रिप्ट सबसे पहले यही जाँचती है। कम होने पर वह मना कर देती है, और नई रिलीज़ लाने की सटीक कमांड बताती है।
Software Update सिर्फ़ सबसे नया मेजर वर्ज़न दिखाता है
macOS 15 पर System Settings ने macOS 27 दिखाया, और कुछ नहीं। पुराने मेजर वर्ज़न अब भी मौजूद हैं। आपको उन्हें कमांड लाइन से नाम लेकर माँगना होता है।
$ softwareupdate --list-full-installers * Title: macOS 27 Golden Gate, Version: 27.0, Build: 26A428 * Title: macOS Tahoe, Version: 26.7, Build: 25G229 * Title: macOS Tahoe, Version: 26.6.2 ... * Title: macOS Sequoia, Version: 15.8 ... $ softwareupdate --fetch-full-installer --full-installer-version 26.7
यह सूची मॉडल पर निर्भर है, इसलिए इसे उसी मशीन पर चलाएँ। हमारी मशीन पर सिर्फ़ 27 मिला, इसलिए हमने 27 जानबूझकर लिया, डिफ़ॉल्ट के भरोसे नहीं। फ़्लीट पर यह फ़र्क मायने रखता है।
फ़्लीट मशीन पर नया मेजर वर्ज़न लेने से पहले
हम जो भी Homebrew formula इंस्टॉल करते हैं, उन सबके लिए नई रिलीज़ का bottle पहले से था। इसीलिए एनरोलमेंट में आम जितना समय लगा, Ruby कंपाइल करने में पूरी दोपहर नहीं गई।
बिक्री पर जाने से पहले एनरोलमेंट क्या जाँचता है
वर्ज़न की जाँच पास करना काम की शुरुआत है, अंत नहीं। किसी को मशीन ऑफ़र करने से पहले उसे चार चीज़ें साबित करनी होती हैं। हर एक को माना नहीं जाता, मापा जाता है।
- असली डेस्कटॉप। एक VNC क्लाइंट फ़्रेमबफ़र खींचता है और रंग गिनता है। एक लाख से ज़्यादा अलग रंग मतलब डेस्कटॉप है। दो मतलब काली स्क्रीन।
- असली कंपाइल।
xcrun swiftcग्राहक के अकाउंट से एक बाइनरी बनाता और चलाता है। - लॉग इन सेशन।
whoग्राहक के अकाउंट की console लाइन दिखाता है। - टेलीमेट्री आ रही है। हब को फ़्लीट डैशबोर्ड में मशीन, उसका macOS वर्ज़न और उसका सेशन दिखता है।
हमारी मशीन ने macOS 27 पर चारों पास कीं। इसी वजह से वह बिक्री पर है, वर्ज़न नंबर की वजह से नहीं।
वह डर जो बग नहीं था
एनरोलमेंट के बाद पहले दो बूट में ऑटो-लॉगिन नहीं हुआ। बिल्कुल नए macOS मेजर वर्ज़न पर यह रिग्रेशन जैसा दिखता है, और हम इसे लगभग वैसे ही दर्ज करने वाले थे। पर यह नहीं था।
पहला बूट अभी-अभी कॉपी हुए 3.8 GB के Xcode को इंडेक्स कर रहा था, और load average 160 से ऊपर था। लॉगिन समय पर पूरा नहीं हुआ, और macOS ने loginwindow की प्रेफ़रेंस में lastLoginPanic सेट कर दिया। यह फ़्लैग अगले बूट पर भी ऑटो-लॉगिन छोड़ देता है। इस लैच को हटाकर, शांत हो चुकी मशीन को रीबूट करने से काम बन गया। पासवर्ड वही था और स्क्रिप्ट भी वही, 8 और 32 दोनों कैरेक्टर पर।
sudo defaults delete /Library/Preferences/com.apple.loginwindow lastLoginPanic sudo shutdown -r now
नया OS वजह नहीं था, यह एक कंट्रोल ने साबित किया। हमने वही जाँच वाली कमांड एक मेजर वर्ज़न पीछे की ठीक मशीन पर चलाई, और वही एरर मिला। वह कहानी, और उसके जैसी चार और, जो जाँचें कभी फ़ेल नहीं हो सकतीं में है।
पुराना mini ख़रीदते समय क्या जाँचें
इसमें कुछ भी CI के लिए ख़ास नहीं है। किसी भी पुराने Mac के लिए पैसे देने से पहले यही जाँचना चाहिए। बस हमारे पास इसे पहली बार में सही करने की ज़्यादा वजहें हैं, क्योंकि मशीन एक घंटे के अंदर ग्राहक के पास जाती है।
सवाल
- जो macOS वर्ज़न Software Update नहीं दिखाता, उसे कैसे इंस्टॉल करें?
- softwareupdate --list-full-installers चलाएँ, ताकि उस मॉडल के लिए Apple की हर रिलीज़ दिखे। फिर अपने चाहे वर्ज़न के साथ softwareupdate --fetch-full-installer --full-installer-version 26.7 चलाएँ। इंस्टॉलर /Applications में आ जाता है।
- क्या Xcode 26.6 macOS 27 पर चलता है?
- हाँ। Xcode की Info.plist में LSMinimumSystemVersion 26.2 है, और यह न्यूनतम सीमा है, तय वर्ज़न नहीं। यह 27 पर लॉन्च होता है और बिल्ड करता है।
- क्या CI मशीन पर बस सबसे नया macOS ले लेना चाहिए?
- सिर्फ़ सोच-समझकर। फ़्लीट की बाकी मशीनों से अलग मेजर वर्ज़न पर एक यूनिट CI ग्राहकों के लिए नतीजे दोहराने की क्षमता तोड़ देती है। पहले देखें कि नई रिलीज़ के लिए Homebrew bottles मौजूद हैं। नहीं तो हर इंस्टॉल सोर्स से कंपाइल होगा।
- पुराना Mac mini ख़रीदने से पहले क्या जाँचें?
- सीरियल और मॉडल, RAM, असली डिस्क साइज़, macOS वर्ज़न। FileVault और Activation Lock बंद हों, Find My बंद हो, और कोई MDM एनरोलमेंट न हो। हमारा 500 GB बताकर बेचा गया था, पर 256 का निकला।
अपना हिसाब खुद लगाएँ: कैलकुलेटर देखें, या एक runner लीज़ करें।