MacOS पर OR-टूल .Net से सोर्स बनाना

शुरुआती जानकारी

इस गाइड में बताया गया है कि MacOS पर .Net की सुविधा के साथ, सोर्स OR-टूल की मदद से कैसे प्रोजेक्ट बनाए जा सकते हैं.

हमारा सुझाव है कि अगर आप सोर्स कोड में बदलाव नहीं करना चाहते हैं या OR-टूल के साथ किसी तीसरे पक्ष के सॉल्वर का इस्तेमाल करना चाहते हैं, तो हम आपको पैकेज इंस्टॉल करने का सुझाव देते हैं.

हालांकि, ये निर्देश MacOS के दूसरे वैरिएंट पर भी काम कर सकते हैं, लेकिन हमने सिर्फ़ उन मशीनों पर टेस्ट किया है जो इन शर्तों को पूरा करती हैं:

  • MacOS 13.0.1 (Ventura) Intel 64-बिट (x86_64)
  • MacOS 13.0.1 (Ventura) M1 (arm64)

ज़रूरी शर्तें

नीचे दिए सेक्शन में, OR-टूल इंस्टॉल करने की ज़रूरी शर्तों के बारे में बताया गया है.

Xcode कमांड लाइन टूल

आपको Xcode कमांड लाइन टूल इंस्टॉल करने होंगे. ऐसा करने के लिए, /Applications/Utilities/ में मौजूद Terminal खोलें और यह डालें:

xcode-select --install

Xcode Command Line Tools को डाउनलोड और इंस्टॉल करने के लिए "इंस्टॉल करें" पर क्लिक करें. आपको App Store से "Xcode पाएं" की ज़रूरत नहीं है. अगर आपका इंटरनेट कनेक्शन धीमा है, तो इसमें कई मिनट लग सकते हैं.

पुष्टि करें कि आपने Xcode Command Line Tools को सही तरीके से इंस्टॉल किया है:

xcode-select -p

आपको यह दिखना चाहिए:

/Library/Developer/CommandLineTools

होमब्रू

बाकी ज़रूरी शर्तों को इंस्टॉल करने के लिए, हमारा सुझाव है कि पहले "macOS के लिए पैकेज मैनेजर मौजूद नहीं है" को इंस्टॉल करें. इसे Homebrew के नाम से भी जाना जाता है. ऐसा करने के लिए, एक टर्मिनल विंडो खोलें और यह डालें:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew update

इस बात की पुष्टि करने के लिए कि आपने ब्रू इंस्टॉल कर लिया है:

brew --version

आपको यह दिखना चाहिए:

Homebrew 1.6.9-8-g25542d7
Homebrew/homebrew-core (git revision 0e0c84; last commit 2018-06-20)

C++ टूल

C++ टूल इंस्टॉल करने के लिए, टर्मिनल विंडो खोलें और यह डालें:

brew install cmake wget pkg-config

SWIG टूल

SWIG टूल इंस्टॉल करने के लिए, टर्मिनल विंडो खोलें और यह डालें:

brew install swig

.Net 6.0 SDK टूल

आपको .Net 6.0 SDK टूल इंस्टॉल करना होगा.

Homebrew इंस्टॉल करने के बाद, dotnet-sdk पैकेज इंस्टॉल करने के लिए, टर्मिनल विंडो खोलें और पेज में यह डालें:

brew cask install dotnet-sdk

नीचे दिए गए निर्देश का इस्तेमाल करके, यह जांच की जा सकती है कि dotnet cli सही तरीके से इंस्टॉल है या नहीं:

dotnet --info

सोर्स कोड डाउनलोड करना

GitHub पर OR-टूल सोर्स कोड की दो अलग-अलग ब्रांच हैं: stable और main.

stable की ब्रांच को अच्छी तरह से टेस्ट कर लिया गया है और यह काम करने वाले सभी प्लैटफ़ॉर्म पर बिना किसी गड़बड़ी के काम करनी चाहिए.
main ब्रांच में नए अपडेट और सुधार लागू किए गए हैं. यह ज़्यादा नया है, लेकिन इसमें कोई बदलाव नहीं हुआ है.

स्टेबल सोर्स कोड डाउनलोड करना

OR-टूल के लिए, इनमें से किसी भी तरीके से स्टेबल सोर्स कोड मिल सकता है:

  • यह टाइप करके, stable ब्रांच का क्लोन बनाएं:

    git clone https://github.com/google/or-tools
    
  • GitHub में Clone or download बटन पर क्लिक करके, कंप्रेस की गई फ़ाइल में नई रिलीज़ डाउनलोड करें.क्लोन या डाउनलोड बटन की इमेज

मुख्य सोर्स कोड डाउनलोड करना

main शाखा से सोर्स कोड पाने के लिए, यह डालें:

git clone -b main https://github.com/google/or-tools

पिछली रिलीज़ डाउनलोड करें

पिछली रिलीज़ के लिए सोर्स कोड पाने के लिए, इनमें से किसी भी तरीके का इस्तेमाल किया जा सकता है:

  • GitHub के रिलीज़ पेज से पिछली रिलीज़ डाउनलोड करें.
  • यह मानते हुए कि आपने पहले ही (git clone से) एक लोकल रिपॉज़िटरी बना लिया है, आपके पास Git टैग का इस्तेमाल करके कोई खास रिलीज़ देखने का विकल्प है. उदाहरण के लिए, main ब्रांच के बजाय v9.9 रिलीज़ के साथ काम करने के लिए, अपने लोकल रेपो में ये निर्देश डालें:

    git fetch --all --tags --prune
    git checkout tags/v9.9 -v v9.9
    

बिल्ड को कॉन्फ़िगर करें

OR-टूल बनाने से पहले, आपको C Maker बिल्ड सिस्टम जनरेटर कॉन्फ़िगर करना होगा.

टर्मिनल खोलें और उस डायरेक्ट्री पर जाएं जहां से आपने फ़ाइलें निकाली हैं. इसके बाद, यह डालें:

cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_DOTNET=ON

देखें

ज़्यादा जानकारी के लिए, C Maker दस्तावेज़ देखें.

SCIP का इस्तेमाल करना

वर्शन 7.8 से, एससीआईपी को अब इंटिग्रेट कर दिया गया है. इसलिए, आपको इसे मैन्युअल तरीके से इंस्टॉल नहीं करना पड़ेगा.

Gurobi का उपयोग करना

गुरोबी अब पहले से इंटिग्रेट हो चुका है. ज़रूरत पड़ने पर, रनटाइम के दौरान OR-टूल, MAC OS X और Windows पर Gurobi इंस्टॉलर के डिफ़ॉल्ट इंस्टॉल पाथ में या GUROBI_HOME एनवायरमेंट वैरिएबल का इस्तेमाल करके, Gurobi शेयर की गई लाइब्रेरी को खोजेगा.

तीसरे पक्ष के वैकल्पिक एमआईपी सॉल्वर का इस्तेमाल करना

OR-टूल का इस्तेमाल, तीसरे पक्ष के ऐसे एमआईपी के साथ वैकल्पिक तरीके से भी किया जा सकता है जिनके लिए यह सुविधा डिफ़ॉल्ट रूप से बंद रहती है:

ज़्यादा जानकारी के लिए, कृपया यह दस्तावेज़ देखें.

सोर्स कोड बनाना

सोर्स कोड बनाने के लिए, एक टर्मिनल खोलें और उस डायरेक्ट्री पर जाएं जहां से आपने फ़ाइलें निकाली हैं. इसके बाद, OR-टूल को कंपाइल करने के लिए यह कमांड डालें:

cmake --build build --config Release --target ALL_BUILD -j -v

ज़्यादा जानकारी के लिए, C Maker दस्तावेज़ देखें.

सोर्स कोड की जांच करना

यह जानकारी डालकर देखा जा सकता है कि सब कुछ ठीक से चल रहा है या नहीं:

cmake --build build --config Release --target RUN_TESTS -v

यह OR-टूल के उदाहरण चलाता है. अगर सभी उदाहरण सही तरीके से चलते हैं, तो आप OR-टूल का इस्तेमाल शुरू करने के लिए तैयार हैं.

बिल्ड फ़ाइलें हटाई जा रही हैं

अगर आपको OR-टूल को फिर से इंस्टॉल करना है, तो यह निर्देश दें:

rm -r build

कंपाइल की गई सभी डिपेंडेंसी हटा दी जाएंगी. यह साफ़ स्थिति में रीसेट करने के लिए उपयोगी हो सकता है.

इसके बाद, निर्देश फिर से डालें:

cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_DOTNET=ON

cmake --build build --config Release --target ALL_BUILD -j -v

अपने ऑपरेटिंग सिस्टम पर OR-टूल इंस्टॉल करना

यह टाइप करके, अपने ऑपरेटिंग सिस्टम पर .Net के लिए OR-टूल इंस्टॉल किया जा सकता है:

cmake --build build --config Release --target install -v