Sage هو برنامج رياضي مفتوح المصدر تم إصداره بموجب رخصة GNU العامة GPLv2+، ويتضمن حزمًا تحتوي على تراخيص برامج متوافقة. لقد ساهم الناس في جميع أنحاء العالم في تطوير Sage. الوثائق الكاملة متاحة على الانترنت.
يمكن لأولئك الذين نفد صبرهم استخدام Sage المُصمم مسبقًا والمتوفر عبر الإنترنت من أي موقع
بدون التثبيت المحلي. وإلا واصل القراءة.
يوفر دليل تثبيت Sage شجرة قرارات ترشدك إلى نوع التثبيت الذي يناسبك بشكل أفضل. يتضمن ذلك البناء من المصدر، أو الحصول على Sage من مدير الحزم، أو استخدام صورة حاوية، أو استخدام Sage في السحابة.
يحتوي هذا الملف التمهيدي (README) على تعليمات قائمة بذاتها لبناء Sage من المصدر. يتطلب هذا منك استنساخ مستودع git (كما هو موضح في هذا الملف التمهيدي) أو تنزيل المصادر في شكل كرة قطران.
إذا كانت لديك أسئلة أو واجهت مشكلات، فيرجى عدم التردد في إرسال القائمة البريدية لدعم sage عبر البريد الإلكتروني أو طرح الأسئلة على موقع Ask Sage للأسئلة والأجوبة.
يحاول Sage دعم جميع توزيعات Linux الرئيسية والإصدارات الحديثة من macOS وWindows (باستخدام نظام Windows الفرعي لنظام التشغيل Linux أو المحاكاة الافتراضية).
يمكن العثور على معلومات تفصيلية حول الأنظمة الأساسية المدعومة لإصدار معين من Sage في القسم مساعدة التوفر والتثبيت لجولة الإصدار لهذا الإصدار.
نحن نقدر بشدة المساهمات المقدمة إلى Sage والتي تعمل على إصلاح أخطاء قابلية النقل وتساعد في نقل Sage إلى الأنظمة الأساسية الجديدة؛ أخبرنا بذلك على القائمة البريدية لـ sage-devel.
الطريقة المفضلة لتشغيل Sage على Windows هي استخدام نظام Windows الفرعي لنظام التشغيل Linux (WSL). اتبع دليل إعداد WSL الرسمي لتثبيت Ubuntu (أو توزيعة Linux أخرى). تأكد من تخصيص ذاكرة وصول عشوائي كافية لـ WSL؛ من المعروف أن سعة 5 جيجابايت تعمل، في حين أن 2 جيجابايت قد لا تكون كافية لبناء Sage من المصدر. ثم يتم تطبيق جميع تعليمات التثبيت في Linux.
وكبديل، يمكنك أيضًا تشغيل Linux على Windows باستخدام Docker (انظر أدناه) أو حلول المحاكاة الافتراضية الأخرى.
إذا كان جهاز Mac الخاص بك يستخدم بنية Apple Silicon (M1، وM2، وM3، وM4؛ وarm64) وقمت بإعداد جهاز Mac الخاص بك عن طريق نقل الملفات من جهاز Mac أقدم، فتأكد من أن الدليل /usr/local
لا يحتوي على نسخة قديمة من Homebrew (أو برامج أخرى) للبنية x86_64 التي ربما تكون قد نسختها. لاحظ أن Homebrew لـ M1 مثبت في /opt/homebrew
، وليس /usr/local
.
إذا كنت ترغب في استخدام conda، يرجى مراجعة القسم الخاص بـ conda في دليل تثبيت Sage للحصول على إرشادات.
بخلاف ذلك، نوصي بشدة باستخدام Homebrew ("مدير الحزم المفقود لنظام التشغيل macOS") من https://brew.sh/، الذي يوفر مترجم gfortran
والعديد من المكتبات.
بخلاف ذلك، إذا كنت لا ترغب في تثبيت Homebrew، فستحتاج إلى تثبيت أحدث إصدار من Xcode Command Line Tools. افتح نافذة طرفية وقم بتشغيل xcode-select --install
؛ ثم انقر فوق "تثبيت" في النافذة المنبثقة. إذا كانت أدوات سطر أوامر Xcode مثبتة بالفعل، فقد ترغب في التحقق مما إذا كانت بحاجة إلى التحديث عن طريق كتابة softwareupdate -l
.
مثل العديد من حزم البرامج الأخرى، تم إنشاء Sage من المصدر باستخدام ./configure
، متبوعًا بـ make
. ومع ذلك، نوصي بشدة بقراءة الإرشادات التالية خطوة بخطوة لبناء Sage.
تغطي التعليمات جميع أنظمة التشغيل Linux وmacOS وWSL.
يمكن العثور على مزيد من التفاصيل، التي توفر خلفية لهذه التعليمات، في قسم التثبيت من كود المصدر في دليل التثبيت.
حدد دليل المصدر/الإنشاء ( SAGE_ROOT
):
على أجهزة الكمبيوتر الشخصية، يجب أن يقوم أي دليل فرعي من دليل :envvar: HOME
الخاص بك بذلك.
على سبيل المثال، يمكنك استخدام SAGE_ROOT=~/sage/sage
، والذي سنستخدمه كمثال أدناه.
تحتاج إلى 10 جيجابايت على الأقل من المساحة الحرة على القرص.
يجب ألا يحتوي المسار الكامل إلى الدليل المصدر على مسافات .
بعد بدء الإنشاء، لا يمكنك نقل دليل المصدر/الإنشاء دون كسر الأشياء.
قد ترغب في تجنب أنظمة الملفات البطيئة مثل أنظمة ملفات الشبكة (NFS) وما شابه.
[macOS] يسمح macOS بتغيير الدلائل دون استخدام الأحرف الكبيرة الدقيقة. احذر من هذه الراحة عند التحويل البرمجي لنظام التشغيل macOS. يمكن أن يؤدي تجاهل الكتابة بالأحرف الكبيرة عند التغيير إلى :envvar: SAGE_ROOT
إلى إنشاء أخطاء للتبعيات التي تتطلب الكتابة بالأحرف الكبيرة في أسماء المسارات.
استنساخ المصادر مع git
:
للتحقق من توفر git
، افتح الوحدة الطرفية وأدخل الأمر التالي في موجه الصدفة ( $
):
$ git --version
git version 2.42.0
لا يهم الإصدار الدقيق، ولكن إذا أعطى هذا الأمر خطأ، فقم بتثبيت git
باستخدام مدير الحزم الخاص بك، باستخدام أحد هذه الأوامر:
$ sudo pacman -S git # on Arch Linux
$ sudo apt-get update && apt-get install git # on Debian/Ubuntu
$ sudo yum install git # on Fedora/Redhat/CentOS
$ sudo zypper install git # on openSUSE
$ sudo xbps-install git # on Void Linux
قم بإنشاء الدليل حيث يجب إنشاء SAGE_ROOT
:
$ mkdir -p ~/sage
$ cd ~/sage
استنساخ مستودع Sage git:
$ git clone -c core.symlinks=true --filter blob:none
--origin upstream --branch develop --tags
https://github.com/sagemath/sage.git
يحصل هذا الأمر على أحدث إصدار للتطوير. استبدل --branch develop
بواسطة --branch master
لتحديد أحدث إصدار ثابت بدلاً من ذلك.
سيؤدي هذا إلى إنشاء الدليل الفرعي ~/sage/sage
. (راجع قسم إعداد git والأقسام التالية في دليل مطور Sage لمزيد من المعلومات.)
التغيير إلى الدليل الفرعي الذي تم إنشاؤه:
$ cd sage
[Windows] تحتوي شجرة مصدر Sage على روابط رمزية، ولن يعمل البناء إذا تم استخدام نهايات أسطر Windows بدلاً من نهايات أسطر UNIX.
ولذلك فمن المستحسن (ولكن ليس من الضروري) استخدام إصدار WSL من git
.
تثبيت حزم النظام.
قم إما بالرجوع إلى القسم الخاص بالتثبيت من المصدر في دليل تثبيت Sage للحصول على مجموعات من حزم النظام التي يمكنك تثبيتها. عند الانتهاء، انتقل إلى الخطوة 7 (التمهيد).
وبدلاً من ذلك، اتبع النهج الأكثر دقة أدناه.
[Linux, WSL] قم بتثبيت الحد الأدنى من متطلبات البناء المطلوبة:
المجمعات: gcc
, gfortran
, g++
(إصدارات دول مجلس التعاون الخليجي من 8.4.0 إلى 13.x والإصدارات الحديثة من Clang (LLVM) مدعومة). راجع build/pkgs/gcc/SPKG.rst وbuild/pkgs/gfortran/SPKG.rst لمناقشة المترجمين المناسبين.
أدوات البناء: GNU make
و GNU m4
و perl
(بما في ذلك ExtUtils::MakeMaker
) و ranlib
و git
و tar
و bc
. راجع build/pkgs/_prereq/SPKG.rst لمزيد من التفاصيل.
Python 3.4 أو الأحدث، أو Python 2.7، تثبيت كامل يتضمن urllib
؛ ولكن من الناحية المثالية الإصدار 3.9.x، 3.10.x، 3.11.x، 3.12.x، والذي سيتجنب الاضطرار إلى إنشاء نسخة Sage الخاصة من Python 3. راجع build/pkgs/python3/SPKG.rst لمزيد من التفاصيل.
لقد قمنا بجمع قوائم بحزم النظام التي توفر متطلبات البناء الأساسية هذه. انظر، في المجلد build/pkgs/_prereq/distros، الملفات Arch.txt، وdebian.txt (أيضًا لـ Ubuntu، وLinux Mint، وما إلى ذلك)، وfedora.txt (أيضًا لـ Red Hat، وCentOS)، وopenuse.txt، slackware.txt وvoid.txt، أو قم بزيارة https://doc.sagemath.org/html/en/reference/spkg/_prereq.html#spkg-prereq
اختياري: من المستحسن أن يكون لديك كلاً من أدوات LaTeX وImageMagick (على سبيل المثال، أمر "التحويل") مثبتين نظرًا لأن بعض وظائف الرسم تستفيد منها.
[التطوير] إذا كنت تخطط للقيام بتطوير Sage أو العمل مع فروع التذاكر وليس فقط الإصدارات، فقم بتثبيت متطلبات التشغيل الأساسية. راجع الملفات الموجودة في المجلد build/pkgs/_bootstrap/distros، أو قم بزيارة https://doc.sagemath.org/html/en/reference/spkg/_bootstrap.html#spkg-bootstrap
قم بتشغيل الشجرة المصدر باستخدام الأمر التالي:
$ make configure
(إذا لم يتم تثبيت المتطلبات الأساسية للتمهيد، فسيقوم هذا الأمر بتنزيل حزمة توفر مخرجات التمهيد المضمنة مسبقًا بدلاً من ذلك.)
تطهير بيئة البناء. استخدم الأمر
$ env
لفحص متغيرات البيئة الحالية، على وجه الخصوص PATH
و PKG_CONFIG_PATH
و LD_LIBRARY_PATH
و CFLAGS
و CPPFLAGS
و CXXFLAGS
و LDFLAGS
(إذا تم تعيينها).
قم بإزالة العناصر من متغيرات البيئة (المفصولة بنقطتين) والتي لا ينبغي لـ Sage استخدامها في بنائها الخاص. وعلى وجه الخصوص، قم بإزالة العناصر إذا كانت تشير إلى تثبيت سابق لـ Sage.
[WSL] على وجه الخصوص، تقوم WSL باستيراد العديد من العناصر من متغير Windows PATH
إلى بيئة Linux، مما قد يؤدي إلى أخطاء بناء مربكة. تبدأ هذه العناصر عادةً بـ /mnt/c
. من الأفضل إزالتها جميعًا من متغيرات البيئة. على سبيل المثال، يمكنك ضبط PATH
باستخدام الأمر:
$ export PATH=/usr/sbin/:/sbin/:/bin/:/usr/lib/wsl/lib/
[macOS with homebrew] قم بتعيين متغيرات البيئة المطلوبة للإنشاء:
$ source ./.homebrew-build-env
يهدف هذا إلى إتاحة بعض حزم Homebrew (ما يسمى بحزم البرميل فقط) للإنشاء. قم بتشغيله مرة واحدة لتطبيق الاقتراحات الخاصة بالجلسة الطرفية الحالية. قد تحتاج إلى تكرار هذا الأمر قبل إعادة إنشاء Sage من جلسة طرفية جديدة، أو بعد تثبيت حزم البيرة الإضافية. (يمكنك أيضًا إضافته إلى ملف تعريف Shell الخاص بك بحيث يتم تشغيله تلقائيًا في جميع الجلسات المستقبلية.)
اختياريًا، حدد بادئة التثبيت ( SAGE_LOCAL
):
تقليديًا، وبشكل افتراضي، يتم تثبيت Sage في التسلسل الهرمي للدليل الفرعي المتجذر في SAGE_ROOT/local/
.
يمكن تغيير ذلك باستخدام ./configure --prefix=SAGE_LOCAL
، حيث SAGE_LOCAL
هي بادئة التثبيت المطلوبة، والتي يجب أن تكون قابلة للكتابة من قبل المستخدم.
إذا استخدمت هذا الخيار مع --disable-editable
، فيمكنك حذف شجرة مصدر Sage بأكملها بعد إكمال عملية الإنشاء. ما تم تثبيته في SAGE_LOCAL
سيكون بمثابة تثبيت مستقل لـ Sage.
لاحظ أنه في عملية إنشاء Sage، make
عمليات البناء والتثبيت ( make install
أمر محظور). لذلك، يجب أن يكون التسلسل الهرمي للتثبيت قابلاً للكتابة بواسطة المستخدم.
راجع دليل تثبيت Sage للحصول على خيارات إذا كنت تريد التثبيت في مواقع مشتركة مثل /usr/local/
. لا تحاول إنشاء Sage root
.
اختياريًا، قم بمراجعة خيارات التكوين، والتي تتضمن العديد من الحزم الاختيارية:
$ ./configure --help
الخيارات الملحوظة لمطوري Sage هي التالية:
استخدم الخيار --config-cache
configure
الاحتفاظ بذاكرة تخزين مؤقت على القرص لقيم التكوين. يوفر هذا تسريعًا جيدًا عند تجربة فروع التذاكر التي تقوم بإجراء ترقيات الحزمة، والتي تتضمن إعادة التشغيل التلقائي لخطوة التكوين.
استخدم الخيار --enable-ccache
لتثبيت Sage واستخدام الحزمة الاختيارية ccache
، والتي تم تكوينها مسبقًا للاحتفاظ بذاكرة تخزين مؤقت على القرص لملفات الكائنات التي تم إنشاؤها من الملفات المصدر. وهذا يمكن أن يوفر سرعة كبيرة عند التبديل بين الفروع المختلفة، على حساب استخدام مساحة القرص.
اختياري، ولكن يوصى به بشدة: قم بتعيين بعض متغيرات البيئة لتخصيص البنية.
على سبيل المثال، يتحكم متغير البيئة MAKE
فيما إذا كان سيتم تشغيل عدة مهام بالتوازي. على سبيل المثال، على جهاز يحتوي على 4 معالجات، فإن كتابة export MAKE="make -j4"
ستؤدي إلى تكوين البرنامج النصي للإنشاء لإجراء تجميع متوازي لـ Sage باستخدام 4 وظائف. في بعض الأجهزة القوية، قد تفكر في -j16
، حيث أن البناء باستخدام وظائف أكثر من مراكز وحدة المعالجة المركزية يمكن أن يؤدي إلى تسريع الأمور بشكل أكبر.
لتقليل مخرجات الوحدة الطرفية أثناء الإنشاء، اكتب export V=0
. ( V
تعني "الإسهاب".)
تستحق بعض متغيرات البيئة إشارة خاصة: CC
و CXX
و FC
. يمكن تعيين هذه المتغيرات التي تحدد المترجمين الخاصين بك في وقت التكوين وسيتم تسجيل قيمها لاستخدامها مرة أخرى في وقت الإنشاء ووقت التشغيل.
لإجراء مناقشة متعمقة حول المزيد من متغيرات البيئة لبناء Sage، راجع دليل التثبيت.
اكتب ./configure
متبوعًا بالخيارات التي ترغب في استخدامها. على سبيل المثال، لإنشاء Sage مع حزمة gf2x
التي توفرها Sage، استخدم ./configure --with-system-gf2x=no
.
في نهاية تشغيل ./configure
الناجح، قد ترى رسائل توصي بتثبيت حزم نظام إضافية باستخدام مدير الحزم لديك.
للحصول على قائمة كبيرة من حزم Sage، يستطيع Sage اكتشاف ما إذا كانت حزمة النظام المثبتة مناسبة للاستخدام مع Sage؛ في هذه الحالة، لن تقوم Sage ببناء نسخة أخرى من المصدر.
في بعض الأحيان، ستوصي الرسائل بتثبيت الحزم المثبتة بالفعل على نظامك. راجع رسائل التكوين السابقة أو ملف config.log
للحصول على شرح. كما قد توصي الرسائل بتثبيت حزم غير متوفرة بالفعل؛ فقط أحدث الإصدارات من توزيعتك هي التي ستحتوي على كل هذه الحزم الموصى بها.
اختياري: إذا اخترت تثبيت حزم النظام الإضافية، فإن إعادة تشغيل ./configure
ستختبر ما إذا كانت الإصدارات المثبتة قابلة للاستخدام لـ Sage؛ إذا كان الأمر كذلك، فسيؤدي ذلك إلى تقليل وقت الترجمة ومساحة القرص التي يحتاجها Sage. يمكن تعديل استخدام الحزم بواسطة معلمات ./configure
(تحقق مرة أخرى من مخرجات ./configure --help
).
اكتب make
. هذا كل شيء! كل شيء تلقائي وغير تفاعلي.
إذا اتبعت الإرشادات المذكورة أعلاه، لا سيما فيما يتعلق بتثبيت حزم النظام الموصى بها من خلال إخراج ./configure
(الخطوة 11)، وفيما يتعلق بالبناء الموازي (الخطوة 10)، فإن بناء Sage يستغرق أقل من ساعة واحدة على جهاز كمبيوتر حديث. (وإلا فقد يستغرق الأمر وقتًا أطول بكثير.)
يجب أن يعمل البناء بشكل جيد على جميع الأنظمة الأساسية المدعومة بالكامل. إذا لم يحدث ذلك، نريد أن نعرف!
اكتب ./sage
لتجربته. في Sage، حاول على سبيل المثال 2 + 2
, plot(x^2)
, plot3d(lambda x, y: x*y, (-1, 1), (-1, 1))
لاختبار عملية حسابية بسيطة وتخطيط 2D و 3D. اكتب Ctrl + D أو quit
لإنهاء Sage.
اختياري: اكتب make ptestlong
لاختبار جميع الأمثلة في الوثائق (أكثر من 200000 سطر من الإدخال!) - يستغرق هذا من 10 دقائق إلى عدة ساعات. لا تنزعج كثيرًا إذا كان هناك 2 إلى 3 حالات فشل، ولكن لا تتردد دائمًا في إرسال قسم logs/ptestlong.log
الذي يحتوي على أخطاء إلى القائمة البريدية للدعم الحكيم عبر البريد الإلكتروني. إذا كان هناك العديد من حالات الفشل، فهذا يعني أن هناك مشكلة خطيرة في جهازك.
تم إنشاء إصدار HTML من الوثائق أثناء عملية تجميع Sage ويوجد في الدليل local/share/doc/sage/html/
. قد ترغب في وضع إشارة مرجعية عليه في متصفحك.
اختياري: إذا كنت تريد إنشاء نسخة PDF من الوثائق، قم بتشغيل make doc-pdf
(وهذا يتطلب تثبيت LaTeX).
اختياري: قم بتثبيت الحزم الاختيارية التي تهمك: احصل على القائمة عن طريق كتابة ./sage --optional
أو عن طريق زيارة صفحة وثائق الحزم.
اختياري: أنشئ رابطًا رمزيًا للبرنامج النصي sage
المثبت في دليل في PATH
، على سبيل المثال /usr/local
. سيسمح لك هذا ببدء تشغيل Sage عن طريق كتابة sage
من أي مكان بدلاً من الاضطرار إلى كتابة المسار الكامل أو الانتقال إلى دليل Sage واكتب ./sage
. يمكن القيام بذلك عن طريق تشغيل:
$ sudo ln -s $(./sage -sh -c 'ls $SAGE_ROOT/venv/bin/sage') /usr/local/bin
اختياري: قم بإعداد SageMath باعتباره Jupyter kernel في دفتر Jupyter الحالي أو تثبيت JupyterLab، كما هو موضح في قسم تشغيل SageMath في دليل تثبيت Sage.
لتثبيت Sage في بيئة Python من PyPI، يوفر Sage الحزمة القابلة للتثبيت pip
sagemath-standard.
ما لم تكن بحاجة إلى تثبيت Sage في بيئة موجودة معينة، نوصي بإنشاء وتنشيط بيئة افتراضية جديدة، على سبيل المثال ~/sage-venv/
:
$ python3 -m venv ~/sage-venv
$ source ~/sage-venv/bin/activate
كخطوة التثبيت الأولى، قم بتثبيت sage_conf، الذي يبني حزم المتطلبات المسبقة المختلفة في دليل فرعي لـ ~/.sage/
:
(sage-venv) $ python3 -m pip install -v sage_conf
بعد التثبيت الناجح، توفر غرفة القيادة حزم Python المختلفة. يمكنك سرد العجلات باستخدام الأمر:
(sage-venv) $ ls $(sage-config SAGE_SPKG_WHEELS)
إذا كان هذا يعطي خطأ يفيد بعدم العثور على sage-config
، فتحقق من أي رسائل قد يكون أمر pip install
قد طبعها. قد تحتاج إلى ضبط PATH
الخاص بك، على سبيل المثال عن طريق:
$ export PATH="$(python3 -c 'import sysconfig; print(sysconfig.get_path("scripts", "posix_user"))'):$PATH"
الآن قم بتثبيت الحزم من غرفة القيادة وحزمة sage_setup، وأخيرًا قم بتثبيت مكتبة Sage:
(sage-venv) $ python3 -m pip install $(sage-config SAGE_SPKG_WHEELS)/*.whl sage_setup
(sage-venv) $ python3 -m pip install --no-build-isolation -v sagemath-standard
تقوم التعليمات المذكورة أعلاه بتثبيت أحدث إصدار ثابت من Sage. لتثبيت أحدث إصدار تطوير بدلاً من ذلك، أضف المفتاح --pre
إلى كافة استدعاءات python3 -m pip install
.
ملاحظة: يحتوي PyPI على العديد من الحزم الأخرى القابلة pip
والتي تحتوي على كلمة "sage" في أسمائها. تتم صيانة بعضها بواسطة مشروع SageMath، وبعضها يتم توفيره بواسطة مستخدمي SageMath لأغراض مختلفة، والبعض الآخر لا علاقة له على الإطلاق بـ SageMath. لا تستخدم الحزم sage
و sagemath
. للحصول على قائمة منسقة بالحزم، راجع فصل الحزم والميزات في الدليل المرجعي لـ Sage.
يتوفر SageMath على Docker Hub ويمكن تنزيله من خلال:
docker pull sagemath/sagemath
حاليًا، يتم تحديث الإصدارات المستقرة فقط.
إذا كانت لديك مشكلات في إنشاء Sage، فراجع دليل تثبيت Sage، بالإضافة إلى تعليمات التثبيت الخاصة بالإصدار في جولة الإصدار المتوافقة مع الإصدار الذي تقوم بتثبيته.
من فضلك لا تتردد في طلب المساعدة في منتدى SageMath أو القائمة البريدية لدعم sage. يوفر قسم استكشاف الأخطاء وإصلاحها في دليل تثبيت Sage إرشادات حول المعلومات التي يجب تقديمها حتى نتمكن من تقديم المساعدة بشكل أكثر فعالية.
إذا كنت ترغب في المساهمة في Sage، فإننا نوصي بشدة بقراءة دليل المطورين.
يحتوي Sage على مكونات مهمة مكتوبة باللغات التالية: C/C++، وPython، وCython، وCommon Lisp، وFortran، وقليل من لغة Perl.
تخطيط الدليل المبسط (الملفات/الدلائل الأساسية فقط):
SAGE_ROOT Root directory (create by git clone)
├── build
│ └── pkgs Every package is a subdirectory here
│ ├── 4ti2/
│ …
│ └── zlib/
├── configure Top-level configure script
├── COPYING.txt Copyright information
├── pkgs Source trees of Python distribution packages
│ ├── sage-conf
│ │ ├── sage_conf.py
│ │ └── setup.py
│ ├── sage-docbuild
│ │ ├── sage_docbuild/
│ │ └── setup.py
│ ├── sage-setup
│ │ ├── sage_setup/
│ │ └── setup.py
│ ├── sage-sws2rst
│ │ ├── sage_sws2rst/
│ │ └── setup.py
│ └── sagemath-standard
│ ├── bin/
│ ├── sage -> ../../src/sage
│ └── setup.py
├── local (SAGE_LOCAL) Installation hierarchy for non-Python packages
│ ├── bin Executables
│ ├── include C/C++ headers
│ ├── lib Shared libraries, architecture-dependent data
│ ├── share Databases, architecture-independent data, docs
│ │ └── doc Viewable docs of Sage and of some components
│ └── var
│ ├── lib/sage
│ │ ├── installed/
│ │ │ Records of installed non-Python packages
│ │ ├── scripts/ Scripts for uninstalling installed packages
│ │ └── venv-python3.9 (SAGE_VENV)
│ │ │ Installation hierarchy (virtual environment)
│ │ │ for Python packages
│ │ ├── bin/ Executables and installed scripts
│ │ ├── lib/python3.9/site-packages/
│ │ │ Python modules/packages are installed here
│ │ └── var/lib/sage/
│ │ └── wheels/
│ │ Python wheels for all installed Python packages
│ │
│ └── tmp/sage/ Temporary files when building Sage
├── logs
│ ├── install.log Full install log
│ └── pkgs Build logs of individual packages
│ ├── alabaster-0.7.12.log
│ …
│ └── zlib-1.2.11.log
├── m4 M4 macros for generating the configure script
│ └── *.m4
├── Makefile Running "make" uses this file
├── prefix -> SAGE_LOCAL Convenience symlink to the installation tree
├── README.md This file
├── sage Script to start Sage
├── src Monolithic Sage library source tree
│ ├── bin/ Scripts that Sage uses internally
│ ├── doc/ Sage documentation sources
│ └── sage/ The Sage library source code
├── upstream Source tarballs of packages
│ ├── Babel-2.9.1.tar.gz
│ …
│ └── zlib-1.2.11.tar.gz
├── venv -> SAGE_VENV Convenience symlink to the virtual environment
└── VERSION.txt
لمزيد من التفاصيل، راجع دليل المطور الخاص بنا.
هذا ملخص مختصر لنظام بناء توزيع برامج Sage. هناك مكونان لنظام Sage الكامل - مكتبة Sage Python وواجهات المستخدم المرتبطة بها، وتوزيع البرامج الأكبر لتبعيات Sage الرئيسية (لتلك التبعيات التي لا يوفرها نظام المستخدم).
تم إنشاء مكتبة Sage's Python وتثبيتها باستخدام برنامج setup.py
النصي كما هو معتاد في حزم Python (إعداد Sage's setup.py
ليس بالأمر التافه، ولكنه ليس غير عادي).
يهتم معظم نظام البناء المتبقي ببناء جميع تبعيات Sage بالترتيب الصحيح فيما يتعلق ببعضها البعض. يُشار إلى التبعيات المضمنة بواسطة Sage باسم SPKGs (أي "حزم Sage") ويتم إدراجها ضمن build/pkgs
.
نقطة الدخول الرئيسية لنظام البناء الخاص بـ Sage هي Makefile
ذي المستوى الأعلى الموجود في جذر الشجرة المصدر. على عكس معظم المشاريع العادية التي تستخدم autoconf (يفعل Sage ذلك أيضًا، كما هو موضح أدناه)، لم يتم إنشاء Makefile
هذا. وبدلاً من ذلك، فهو يحتوي على عدد قليل من الأهداف عالية المستوى والأهداف المتعلقة بتمهيد النظام. ومع ذلك، مازلنا نقوم بتشغيل make
من جذر الشجرة المصدر - فالأهداف التي لم يتم تعريفها بشكل صريح في Makefile
ذي المستوى الأعلى يتم تمريرها إلى ملف Makefile آخر ضمن build/make/Makefile
.
يتم إنشاء الإصدار الأخير build/make/Makefile
بواسطة برنامج configure
تم إنشاؤه تلقائيًا، باستخدام القالب الموجود في build/make/Makefile.in
. يتضمن ذلك قواعد إنشاء مكتبة Sage نفسها ( make sagelib
)، وبناء وتثبيت كل من تبعيات Sage (على سبيل المثال، make gf2x
).
يمكن إنشاء البرنامج النصي configure
نفسه، إذا لم يكن قد تم إنشاؤه بالفعل، عن طريق تشغيل البرنامج النصي bootstrap
(يتطلب الأخير تثبيت أدوات GNU التلقائية). يعتني Makefile
ذو المستوى الأعلى أيضًا بهذا تلقائيًا.
للتلخيص، تشغيل أمر مثل make python3
في المستوى الأعلى من الشجرة المصدر يكون كالتالي:
make python3
./bootstrap
إذا كان configure
يحتاج إلى التحديث./configure
مع أي خيارات تم تكوينها مسبقًا إذا كان build/make/Makefile
يحتاج إلى التحديثbuild/make
وتشغيل البرنامج النصي install
- وهذا ليس أكثر من مجرد واجهة أمامية لتشغيل make -f build/make/Makefile python3
، الذي يقوم بتعيين بعض متغيرات البيئة الضرورية ويسجل بعض المعلوماتbuild/make/Makefile
على القاعدة الفعلية لبناء python3
؛ يتضمن ذلك بناء جميع تبعيات python3
أولاً (وتبعياتها بشكل متكرر)؛ يتم إجراء التثبيت الفعلي للحزمة باستخدام برنامج sage-spkg
لا يتم دعم نقل دليل SAGE_ROOT
أو SAGE_LOCAL
بعد إنشاء Sage. إذا قمت بنقل الدلائل، فسيتعين عليك تشغيل make distclean
وإنشاء Sage مرة أخرى من الصفر.
بالنسبة للتثبيت على مستوى النظام، يتعين عليك إنشاء Sage كمستخدم "عادي" ثم يمكنك تغيير الأذونات كجذر. راجع دليل التثبيت لمزيد من المعلومات.
إن تثبيت Sage المحلي الخاص بك هو تقريبًا نفس تثبيت أي "مطور". يمكنك إجراء تغييرات على الوثائق والمصدر وما إلى ذلك، وحزم النتائج الكاملة بسهولة لإعادة التوزيع تمامًا كما نفعل.
لإجراء توزيع ثنائي للحزم المثبتة حاليًا، قم بزيارة sagemath/binary-pkg.
لإنشاء مصدر خاص بك من Sage، اكتب:
$ make dist
يتم وضع النتيجة في الدليل dist/
.
جميع البرامج المضمنة في Sage محمية بحقوق الطبع والنشر من قبل المؤلفين المعنيين وتم إصدارها بموجب ترخيص مفتوح المصدر متوافق مع الإصدار 3 من GPL أو الإصدارات الأحدث . راجع COPYING.txt لمزيد من التفاصيل.
المصادر موجودة في كرات القطران غير المعدلة (قدر الإمكان) في الدليل upstream/
. الوصف المتبقي ومعلومات الإصدار والتصحيحات والبرامج النصية للبناء موجودة في دليل build/pkgs/
المصاحب. يعد هذا الدليل جزءًا من مستودع Sage git.
حقوق الطبع والنشر (C) 2005-2024 لفريق تطوير Sage
https://www.sagemath.org