লিনাক্সে সোর্স OR-Tools .Net থেকে বিল্ডিং

ভূমিকা

লিনাক্সে .Net-এর সমর্থন সহ উৎস OR-Tools থেকে কীভাবে তৈরি করা যায় এই নির্দেশিকাটি ব্যাখ্যা করে।

আপনি যদি সোর্স কোড পরিবর্তন করার পরিকল্পনা না করেন বা OR-Tools সহ একটি তৃতীয়-পক্ষ সমাধানকারী ব্যবহার করেন, আমরা প্যাকেজ ইনস্টলেশনের সুপারিশ করি।

যদিও এই নির্দেশাবলী অন্যান্য লিনাক্স ভেরিয়েন্টগুলিতেও কাজ করতে পারে, আমরা শুধুমাত্র নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণকারী মেশিনগুলিতে সেগুলি পরীক্ষা করেছি:

  • আলপাইন এজ 64-বিট (x86_64)
  • Centos 7 LTS 64-বিট (x86_64)
  • ডেবিয়ান SID 64-বিট (x86_64)
  • ডেবিয়ান 11 (বুলসি) 64-বিট (x86_64)
  • ফেডোরা 38 64-বিট (x86_64)
  • ফেডোরা 37 64-বিট (x86_64)
  • OpenSuse লিপ 64-বিট (x86_64)
  • উবুন্টু 24.04 64-বিট (x86_64)
  • উবুন্টু 22.04 LTS 64-বিট (x86_64)
  • উবুন্টু 20.04 LTS 64-বিট (x86_64)

পূর্বশর্ত

নিম্নলিখিত বিভাগগুলি OR-Tools ইনস্টল করার পূর্বশর্তগুলি বর্ণনা করে৷

C++ টুল

C++ টুল ইনস্টল করতে, একটি টার্মিনাল উইন্ডো খুলুন এবং লিখুন:

আলপাইন

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

উবুন্টু

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

উবুন্টু

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

উবুন্টু

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

SWIG

SWIG ইনস্টল করতে, একটি টার্মিনাল উইন্ডো খুলুন এবং লিখুন:

আলপাইন

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

উবুন্টু

sudo apt install -y swig

উবুন্টু

sudo apt install -y swig

উবুন্টু

sudo apt install -y swig

.নেট কোর SDK >= 3.1

এরপর, .Net Core SDK সংস্করণ 3.1 বা উচ্চতর ইনস্টল করুন৷ এটি করতে, একটি টার্মিনাল উইন্ডো খুলুন এবং লিখুন:

আলপাইন

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

উবুন্টু

sudo apt install -y dotnet-sdk-6.0
রেফারেন্স: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

উবুন্টু

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

উবুন্টু

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

সোর্স কোড ডাউনলোড করুন

GitHub- এ OR-Tools সোর্স কোডের দুটি স্বতন্ত্র শাখা রয়েছে: 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 দ্বারা), আপনি একটি গিট ট্যাগ ব্যবহার করে একটি নির্দিষ্ট রিলিজ পরীক্ষা করতে পারেন। উদাহরণস্বরূপ, main শাখার পরিবর্তে v9.10 রিলিজের সাথে কাজ করতে, আপনার স্থানীয় রেপোতে নিম্নলিখিত কমান্ডগুলি লিখুন:

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

বিল্ড কনফিগার করুন

OR-Tools তৈরি করার আগে, আপনাকে CMake বিল্ড সিস্টেম জেনারেটর কনফিগার করতে হবে।

একটি টার্মিনাল খুলুন এবং ডিরেক্টরিতে নেভিগেট করুন যেখানে আপনি ফাইলগুলি বের করেছেন। তারপর লিখুন:

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

বিস্তারিত জানার জন্য CMake ডকুমেন্টেশন চেকআউট করুন.

SCIP ব্যবহার করে

v7.8 থেকে, SCIP এখন ইন্টিগ্রেটেড তাই আপনাকে ম্যানুয়ালি ইন্সটল করতে হবে না।

গুরোবি ব্যবহার করে

গুরোবি এখন প্রাক-সংহত। প্রয়োজন হলে, রানটাইমে, OR-Tools 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 দিয়ে শুরু করতে প্রস্তুত।

বিল্ড ফাইল পরিষ্কার করা

আপনার যদি 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