בנייה מהמקור OR-Tools .Net ב-Linux

מבוא

במדריך הזה מוסבר איך ליצור מהמקור OR-כלים, עם תמיכה .Net ב-Linux.

אלא אם בכוונתך לשנות את קוד המקור או להשתמש בפותר צד שלישי עם OR-Tools, אנחנו ממליצים על התקנת החבילה.

ההוראות האלה עשויות לפעול גם בגרסאות Linux אחרות, אבל בדקו אותם רק במכונות שעומדות בדרישות הבאות:

  • Alpine Edge ב-64 ביט (x86_64)
  • Centos 7 LTS בגרסת 64 ביט (x86_64)
  • Debian SID 64-bit (x86_64)
  • Debian 11 (bullseye) 64-bit (x86_64)
  • Fedora 38-64-ביט (x86_64)
  • Fedora 37-64-bit (x86_64)
  • OpenSuse Leap בגרסת 64 ביט (x86_64)
  • Ubuntu 24.04 64-bit (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

כדי להתקין את 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
ref: https://learn.microsoft.com/he-il/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
ref: https://learn.microsoft.com/he-il/dotnet/core/install/linux-debian

פדורה

sudo dnf install -y dotnet-sdk-6.0
ref: https://learn.microsoft.com/he-il/dotnet/core/install/linux-fedora

פדורה

sudo dnf install -y dotnet-sdk-6.0
ref: https://learn.microsoft.com/he-il/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
ref: https://learn.microsoft.com/he-il/dotnet/core/install/linux-opensuse

Ubuntu

sudo apt install -y dotnet-sdk-6.0
ref: https://learn.microsoft.com/he-il/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
ref: https://learn.microsoft.com/he-il/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
ref: https://learn.microsoft.com/he-il/dotnet/core/install/linux-ubuntu

הורדת קוד המקור

יש שתי הסתעפויות נפרדות של קוד המקור OR-Tools GitHub: stable ו-main.

ההסתעפות stable נבדקת ביסודיות והיא אמורה לפעול ללא שגיאות בכל המכשירים פלטפורמות נתמכות.
ההסתעפות main היא המקום שבו העדכונים האחרונים שיפורים יושמו; הוא עדכני יותר אבל פחות יציב.

הורדת קוד המקור היציב

אפשר לקבל את קוד המקור היציב עבור OR-Tools באחת מהדרכים הבאות:

  • משכפלים את ההסתעפות stable באמצעות הזנת:

    git clone https://github.com/google/or-tools
    
  • אפשר להוריד את הגרסה האחרונה בקובץ דחוס, על ידי לחיצה על הלחצן Clone or download ב-GitHub. תמונה של לחצן שכפול או הורדה

הורדת קוד המקור הראשי

כדי לאחזר את קוד המקור מההסתעפות main, מזינים:

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

הורדה של גרסאות קודמות

אפשר לקבל את קוד המקור של גרסאות קודמות באחת מהדרכים הבאות:

  • מורידים גרסה קודמת מדף הגרסה של GitHub.
  • בהנחה שכבר יצרתם מאגר מקומי (עד git clone), אפשר לבדוק גרסה ספציפית באמצעות Git tag. לדוגמה: כדי לעבוד עם גרסה v9.10 במקום הסתעפות main, מזינים את הפקודות הבאות במאגר המקומי:

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

הגדרת ה-build

לפני שיוצרים כלי OR, צריך להגדיר את מערכת ה-build של CMake גנרטיבית.

פותחים טרמינל ועוברים לספרייה שאליה חילצתם את הקבצים. לאחר מכן מזינים:

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

לבדוק את מסמכי תיעוד של CMake לקבלת פרטים.

שימוש ב-SCIP

החל מגרסה 7.8, SCIP משולב כעת כך שלא יהיה צורך להתקין אותו באופן ידני.

שימוש ב-Gurobi

עכשיו הגרסה של Gurobi משולבת מראש. במקרה הצורך, בזמן הריצה, כלי OR-יחפשו הספרייה המשותפת של Gurobi בנתיב ההתקנה המוגדר כברירת מחדל של מנהלי ההתקנה של Gurobi ב-MAC OS X וב-Windows, או באמצעות משתנה הסביבה GUROBI_HOME.

שימוש בפותר MIP אופציונלי של צד שלישי

אפשר גם להשתמש בכלי OR עם כל אחד מה-MIP האופציונליות הבאות של צד שלישי פתרונות שהתמיכה שלהם מושבתת כברירת מחדל:

כדאי לעיין את מסמכי התיעוד האלה לקבלת פרטים.

פיתוח קוד המקור

כדי ליצור את קוד המקור, פותחים טרמינל ועוברים אל הספרייה שבה שחילצת את הקבצים. לאחר מכן מזינים את הפקודה הבאה כדי להדר את OR-Tools:

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

לבדוק את מסמכי תיעוד של CMake לקבלת פרטים.

בדיקת קוד המקור

כדי לבדוק שהכול פועל כמו שצריך, צריך להזין:

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

הפקודה גורמת להרצת דוגמאות עבור כלי OR. אם כל הדוגמאות פועלות בהצלחה, אתם מוכנים תחילת העבודה עם כלי OR.

ניקוי קובצי ה-build

אם צריך להתקין מחדש את כלי OR, הפקודה:

rm -r build

תסיר את כל יחסי התלות האלה. הפעולה הזו יכולה להועיל לאיפוס למצב נקי.

לאחר מכן מזינים מחדש את הפקודות:

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

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

התקנת OR-Tools במערכת ההפעלה

כדי להתקין את כלי OR-Tools ל- .Net במערכת ההפעלה שלכם, מזינים:

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