בנייה מהמקור OR-כלים של Java ב-Linux

מבוא

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

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

יכול להיות שההוראות האלה יפעלו גם בגרסאות אחרות של 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-bit (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

כדי להתקין את 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

Java JDK >= 8.0

כדי להתקין את Java JDK מגרסה 8.0 ואילך, פתח חלון מסוף והזן:

Alpine

sudo apk add openjdk8
export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk

סנטוס

sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

Debian

sudo apt install -y default-jdk
export JAVA_HOME=/usr/lib/jvm/default-java

פדורה

sudo dnf install -y java-openjdk java-openjdk-devel

פדורה

sudo dnf install -y java-openjdk java-openjdk-devel

OpenSUSE

sudo zypper install -y java-1_8_0-openjdk java-1_8_0-openjdk-devel

Ubuntu

sudo apt install -y default-jdk

Ubuntu

sudo apt install -y default-jdk

Ubuntu

sudo apt install -y default-jdk

Maven >= 3.3

כדי להתקין את Maven בגרסה 3.3 ואילך, פותחים חלון מסוף ומזינים:

Alpine

sudo apk add maven

סנטוס

sudo yum install -y maven

Debian

sudo apt install -y maven

פדורה

sudo dnf install -y maven

פדורה

sudo dnf install -y maven

OpenSUSE

sudo zypper install -y maven

Ubuntu

sudo apt install -y maven

Ubuntu

sudo apt install -y maven

Ubuntu

sudo apt install -y maven

אתם יכולים לבדוק ש-Maven מותקן כראוי ולמצוא את Java באמצעות הפקודה הבאה:

mvn -v

איך מורידים את קוד המקור

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

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

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

ניתן לקבל את קוד המקור היציב עבור כלי OR באחת מהדרכים הבאות:

  • משכפלים את ההסתעפות 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. לדוגמה, כדי לעבוד עם גרסה 9.9 במקום עם ההסתעפות main, מזינים את הפקודות הבאות במאגר המקומי:

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

מגדירים את ה-build

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

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

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

לפרטים נוספים, אפשר לעיין במסמכי התיעוד של CMake.

שימוש ב-SCIP

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

שימוש ב-Gurobi

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

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

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

לפרטים נוספים, קראו את התיעוד הזה.

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

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

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

לפרטים נוספים, אפשר לעיין במסמכי התיעוד של CMake.

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

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

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

פעולה זו מפעילה דוגמאות עבור OR-Tools. אם הפעלתם את כל הדוגמאות, תוכלו להתחיל להשתמש ב-OR-Tools.

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

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

rm -r build

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

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

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

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

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

ניתן להתקין את OR-Tools עבור Java במערכת ההפעלה שלך על ידי הזנת:

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