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

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

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

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

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

  • Alpine Edge 64-बिट (x86_64)
  • Centos 7 LTS 64-बिट (x86_64)
  • Debian SID 64-बिट (x86_64)
  • Debian 11 (bullseye) 64-बिट (x86_64)
  • Fedora 38 64-बिट (x86_64)
  • Fedora 37 64-बिट (x86_64)
  • OpenSuse Leap 64-बिट (x86_64)
  • Ubuntu 23.10 64-बिट (x86_64)
  • Ubuntu 22.04 LTS 64-बिट (x86_64)
  • Ubuntu 20.04 LTS 64-बिट (x86_64)

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

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

C++ टूल

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

Alpine

apk add alpine-sdk linux-headers cmake lsb-release-minimal

सेंटोस

sudo yum groupinstall -y 'Development Tools'
sudo yum install -y pkgconfig redhat-lsb-core

Debian

sudo apt update
sudo apt install -y build-essential cmake lsb-release

फ़िडोरा हैट

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

फ़िडोरा हैट

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

OpenSUSE

sudo zypper refresh
sudo zypper install -y git gcc11 gcc11-c++ lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

स्वाइप करना

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

Alpine

apk add swig

सेंटोस

sudo yum install -y swig

Debian

sudo apt install -y swig

फ़िडोरा हैट

sudo dnf install -y swig

फ़िडोरा हैट

sudo dnf install -y swig

OpenSUSE

sudo zypper install -y swig

Ubuntu

sudo apt install -y swig

Ubuntu

sudo apt install -y swig

Ubuntu

sudo apt install -y swig

.Net Core SDK टूल >= 3.1

इसके बाद, .Net Core SDK टूल का 3.1 या उसके बाद वाला वर्शन इंस्टॉल करें. ऐसा करने के लिए, टर्मिनल विंडो खोलें और यह डालें:

Alpine

apk add dotnet6-sdk
    

ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-alpine

सेंटोस

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install -y dotnet-sdk-6.0
रेफ़रंस: https://learn.microsoft.com/en-us/dotnet/core/install/linux-centos#centos-7

Debian

.NET इंस्टॉल करने से पहले, भरोसेमंद कुंजियों की अपनी सूची में Microsoft पैकेज साइनिंग पासकोड और पैकेज रिपॉज़िटरी जोड़ने के लिए, नीचे दिए गए निर्देश चलाएं.

wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt update
sudo apt install -y dotnet-sdk-6.0
रेफ़रंस: https://learn.microsoft.com/en-us/dotnet/core/install/linux-debian

फ़िडोरा हैट

sudo dnf install -y dotnet-sdk-6.0
रेफ़रंस: https://learn.microsoft.com/en-us/dotnet/core/install/linux-fedora

फ़िडोरा हैट

sudo dnf install -y dotnet-sdk-6.0
रेफ़रंस: https://learn.microsoft.com/en-us/dotnet/core/install/linux-fedora

OpenSUSE

.NET इंस्टॉल करने से पहले, भरोसेमंद कुंजियों की अपनी सूची में Microsoft पैकेज साइनिंग पासकोड और पैकेज रिपॉज़िटरी जोड़ने के लिए, नीचे दिए गए निर्देश चलाएं.

sudo zypper install libicu
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
wget https://packages.microsoft.com/config/opensuse/15/prod.repo
sudo mv prod.repo /etc/zypp/repos.d/microsoft-prod.repo
sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo

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

sudo zypper install -y dotnet-sdk-6.0
रेफ़रंस: https://learn.microsoft.com/en-us/dotnet/core/install/linux-opensuse

Ubuntu

sudo apt install -y dotnet-sdk-6.0
रेफ़रंस: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
रेफ़रंस: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
रेफ़रंस: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

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

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 -j -v

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

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

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

cmake --build build --config Release --target test -v

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

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

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

rm -r build

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

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

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

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

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

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

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