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

परिचय

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

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

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

  • अल्पाइन एज 64-बिट (x86_64)
  • Centos 7 LTS 64-बिट (x86_64)
  • Debian SID 64-बिट (x86_64)
  • Debian 11 (बुल्सआई) 64-बिट (x86_64)
  • Fedora 38 64-बिट (x86_64)
  • Fedora 37 64-बिट (x86_64)
  • OpenSuse Leap 64-बिट (x86_64)
  • Ubuntu 24.04 64-बिट (x86_64)
  • Ubuntu 22.04 एलटीएस 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

डेबियन

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

डेबियन

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 कोर 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

डेबियन

.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

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

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

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

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

OR-Tools के लिए आपको नीचे दिए गए किसी भी तरीके से स्थिर सोर्स कोड मिल सकता है:

  • 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 ने), तो Google Chat का इस्तेमाल करके किसी ख़ास रिलीज़ को टैग. उदाहरण के लिए, main ब्रांच, तो अपने लोकल रेपो में ये कमांड डालें:

    git fetch --all --tags --prune
    git checkout tags/v9.10 -b v9.10
    

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

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

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

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

क्लिक करें

चेकआउट करें CMake दस्तावेज़ देखें.

SCIP का इस्तेमाल किया जा रहा है

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

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

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

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

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

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

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

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

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

चेकआउट करें CMake दस्तावेज़ देखें.

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

सब कुछ ठीक से काम कर रहा है या नहीं, यह देखने के लिए आप नीचे दी गई जानकारी डाल सकते हैं:

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

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

बिल्ड फ़ाइलों को मिटाया जा रहा है

अगर आपको OR-Tools को फिर से इंस्टॉल करना है, तो कमांड:

rm -r build

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

इसके बाद, कमांड दोबारा डालें:

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

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

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

अपने ऑपरेटिंग सिस्टम पर .Net के लिए OR-Tools इंस्टॉल करने के लिए यह डालें:

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