Sage 是根據 GNU 通用公共授權 GPLv2+ 發布的開源數學軟體,並包含具有相容軟體授權的軟體包。全球各地的人們都為 Sage 的發展做出了貢獻。完整文件可線上取得。
那些不耐煩的人可以使用預先建置的 Sage,可以從任何地方在線獲取
無需本地安裝。否則請繼續閱讀。
Sage 安裝指南提供了一個決策樹,可引導您選擇最適合您的安裝類型。這包括從原始碼建置、從套件管理器取得 Sage、使用容器映像或在雲端中使用 Sage。
本自述文件包含從原始碼建構 Sage 的獨立說明。這需要您克隆 git 儲存庫(如本自述文件中所述)或以 tarball 的形式下載原始程式碼。
如果您有疑問或遇到問題,請隨時向 Sage 支援郵件清單發送電子郵件或在 Ask Sage 問題和解答網站上提問。
Sage 嘗試支援所有主要的 Linux 發行版、最新版本的 macOS 和 Windows(使用適用於 Linux 或虛擬化的 Windows 子系統)。
有關特定 Sage 版本支援的平台的詳細信息,請參閱此版本發布之旅的可用性和安裝說明部分。
我們非常感謝對 Sage 的貢獻,修復了可移植性錯誤並幫助將 Sage 移植到新平台;請透過 sage-devel 郵件清單告訴我們。
在 Windows 上執行 Sage 的首選方法是使用 Windows Subsystem for Linux (WSL)。依照官方 WSL 安裝指南安裝 Ubuntu(或其他 Linux 發行版)。確保為 WSL 分配足夠的 RAM;已知 5GB 可以工作,而 2GB 可能不足以從原始碼建立 Sage。然後適用於 Linux 中的所有安裝說明。
作為替代方案,您也可以使用 Docker(請參閱下文)或其他虛擬化解決方案在 Windows 上執行 Linux。
如果您的 Mac 使用 Apple Silicon(M1、M2、M3、M4;arm64)架構,並且您透過從舊版 Mac 傳輸檔案來設定 Mac,請確保目錄/usr/local
不包含 Homebrew 的舊副本(或其他軟體)適用於您可能已複製的x86_64 架構。請注意,M1 的 Homebrew 安裝在/opt/homebrew
中,而不是/usr/local
。
如果您想使用 conda,請參閱 Sage 安裝手冊中有關 conda 的部分以取得指引。
否則,我們強烈建議使用 https://brew.sh/ 中的 Homebrew(「macOS 缺少的套件管理器」),它提供了gfortran
編譯器和許多函式庫。
否則,如果您不想安裝 Homebrew,則需要安裝最新版本的 Xcode 命令列工具。打開終端機視窗並運行xcode-select --install
;然後在彈出的視窗中點擊“安裝”。如果已安裝 Xcode 命令列工具,您可能需要輸入softwareupdate -l
來檢查是否需要更新它們。
與許多其他軟體包一樣,Sage 是使用./configure
和make
從原始碼建構的。但是,我們強烈建議您閱讀以下構建 Sage 的逐步說明。
這些說明涵蓋所有 Linux、macOS 和 WSL。
為這些說明提供背景的更多詳細資訊可以在安裝指南中的從原始碼安裝部分中找到。
確定來源/建置目錄( SAGE_ROOT
):
在個人電腦上,:envvar: HOME
目錄的任何子目錄都可以。
例如,您可以使用SAGE_ROOT=~/sage/sage
,我們將使用它作為下面的運行範例。
您需要至少 10 GB 的可用磁碟空間。
來源目錄的完整路徑不能包含空格。
開始建置後,您無法在不破壞內容的情況下移動來源/建置目錄。
您可能希望避免使用慢速檔案系統,例如網路檔案系統 (NFS) 等。
[macOS] macOS 允許在不使用精確大小寫的情況下更改目錄。針對 macOS 進行編譯時請注意這種便利性。更改為 :envvar: SAGE_ROOT
時忽略精確的大寫可能會導致需要路徑名中精確大寫的依賴項出現建置錯誤。
使用git
克隆源:
若要檢查git
是否可用,請開啟終端機並在 shell 提示字元 ( $
) 下輸入以下命令:
$ 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
。 (有關詳細信息,請參閱《Sage 開發人員指南》中的“設定 git”部分和以下部分。)
切換到已建立的子目錄:
$ cd sage
[Windows] Sage 原始碼樹包含符號鏈接,如果使用 Windows 行結尾而不是 UNIX 行結尾,則建置將無法運作。
因此建議(但不是必須)使用 WSL 版本的git
。
安裝系統套件。
請參閱《Sage 安裝手冊》中有關從原始碼安裝的部分,以取得可安裝的系統軟體包的編譯。完成後,跳至步驟 7(引導)。
或者,遵循下面更細粒度的方法。
[Linux、WSL] 安裝所需的最低建置先決條件:
編譯器: gcc
、 gfortran
、 g++
(支援 8.4.0 到 13.x 的 GCC 版本以及最新版本的 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/_prereq/distros 中的檔案 arch.txt、debian.txt(也適用於 Ubuntu、Linux Mint 等)、fedora.txt(也適用於 Red Hat、CentOS)、opensuse.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 的軟體包(所謂的 keg-only 軟體包)可用於建置。運行一次以應用目前終端會話的建議。在從新的終端機會話重建 Sage 之前或安裝其他自製程式包之後,您可能需要重複此命令。 (您也可以將其新增至您的 shell 設定檔中,以便它在以後的所有會話中自動運行。)
(可選)決定安裝前綴 ( SAGE_LOCAL
):
傳統上,預設情況下,Sage 安裝到以SAGE_ROOT/local/
為根的子目錄層次結構中。
可以使用./configure --prefix=SAGE_LOCAL
進行更改,其中SAGE_LOCAL
是所需的安裝前綴,該前綴必須可由使用者寫入。
如果將此選項與--disable-editable
結合使用,則可以在完成建置過程後刪除整個 Sage 來源樹。 SAGE_LOCAL
中安裝的內容將是 Sage 的獨立安裝。
請注意,在 Sage 的建置過程中, make
建置並安裝( make install
是無操作)。因此,安裝層次結構必須可由使用者寫入。
如果您想安裝到共用位置(例如/usr/local/
請參閱 Sage 安裝手冊以取得選項。不要嘗試以root
建構 Sage。
(可選)查看配置選項,其中包括許多可選包:
$ ./configure --help
Sage 開發人員值得注意的選項如下:
使用選項--config-cache
讓configure
保留配置值的磁碟快取。當嘗試進行套件升級的票證分支時,這會帶來很好的加速,這涉及自動重新運行設定步驟。
使用選項--enable-ccache
讓 Sage 安裝並使用可選包ccache
,該包預先配置為保留從來源檔案建立的物件檔案的磁碟快取。這可以在不同分支之間切換時提供極大的加速,但會佔用磁碟空間。
可選,但強烈建議:設定一些環境變數來自訂建置。
例如, MAKE
環境變數控制是否並行執行多個作業。例如,在具有 4 個處理器的電腦上,輸入export MAKE="make -j4"
將配置建置腳本以使用 4 個作業執行 Sage 並行編譯。在一些功能強大的機器上,您甚至可以考慮-j16
,因為使用比 CPU 核心更多的作業進行建置可以進一步加快速度。
若要減少建置期間的終端輸出,請輸入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
來測試文件中的所有範例(超過 200,000 行輸入!)——這需要 10 分鐘到幾個小時。如果出現 2 到 3 次失敗,請不要太擔心,但請隨時將包含錯誤的logs/ptestlong.log
部分透過電子郵件傳送到 sage-support 郵件清單。如果出現大量失敗,則表示您的建置有嚴重問題。
HTML 版本的文件是在 Sage 編譯過程中建置的,位於目錄local/share/doc/sage/html/
中。您可能想要在瀏覽器中將其新增為書籤。
可選:如果您想建立 PDF 版本的文檔,請執行make doc-pdf
(這需要安裝 LaTeX)。
可選:安裝您感興趣的選用軟體包:透過鍵入./sage --optional
或存取軟體包文件頁面來取得清單。
可選:在PATH
的目錄中建立指向已安裝sage
腳本的符號鏈接,例如/usr/local
。這將允許您透過從任何地方鍵入sage
來啟動 Sage,而不必鍵入完整路徑或導航到 Sage 目錄並鍵入./sage
。這可以透過運行來完成:
$ sudo ln -s $(./sage -sh -c 'ls $SAGE_ROOT/venv/bin/sage') /usr/local/bin
可選:將 SageMath 設定為現有 Jupyter 筆記本或 JupyterLab 安裝中的 Jupyter 內核,如 Sage 安裝指南中的啟動 SageMath 部分所述。
為了從 PyPI 在 Python 環境中安裝 Sage,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 的 Python 函式庫是使用setup.py
腳本建置和安裝的,這是 Python 套件的標準(Sage 的setup.py
很重要,但並不罕見)。
建置系統的其餘部分大部分涉及以正確的相互關係順序建構 Sage 的所有依賴項。 Sage 所包含的依賴項稱為 SPKG(即「Sage 套件」)並列在build/pkgs
下。
Sage 建置系統的主要入口點是原始碼樹根部的頂級Makefile
。與大多數使用 autoconf 的普通專案(Sage 也這樣做,如下所述)不同,不會產生此Makefile
。相反,它包含一些高級目標和與引導系統相關的目標。儘管如此,我們仍然從原始碼樹的根運行make
——頂級Makefile
中未明確定義的目標將傳遞到build/make/Makefile
下的另一個 Makefile 。
後者的build/make/Makefile
是由 autoconf 產生的configure
腳本使用build/make/Makefile.in
中的範本產生的。這包括建構 Sage 庫本身( make sagelib
)以及建置和安裝每個 Sage 依賴項(例如make gf2x
)的規則。
configure
腳本本身(如果尚未建置)可以透過執行bootstrap
腳本來產生(後者需要安裝GNU 自動工具)。頂層Makefile
也會自動處理這個問題。
總而言之,在原始碼樹的頂層運行像make python3
這樣的命令會像這樣:
make python3
configure
需要更新,請執行./bootstrap
build/make/Makefile
需要更新,請使用任何先前設定的選項執行./configure
build/make
並運行install
腳本 - 這只不過是運行make -f build/make/Makefile python3
前端,它設置一些必要的環境變量並記錄一些信息build/make/Makefile
包含建置python3
的實際規則;這包括首先建構所有python3
的依賴項(以及它們的依賴項,遞歸地);實際的軟體包安裝是使用sage-spkg
程式執行的建置 Sage 後不支援移動SAGE_ROOT
或SAGE_LOCAL
目錄。如果您確實移動了目錄,則必須執行make distclean
並從頭開始重新建置 Sage。
對於系統範圍的安裝,您必須將 Sage 建置為「普通」用戶,然後以 root 身分可以變更權限。請參閱安裝指南以了解更多資訊。
您的本機 Sage 安裝幾乎與任何「開發人員」安裝完全相同。您可以對文件、原始碼等進行更改,並像我們一樣輕鬆地將完整結果打包以便重新分發。
若要使用目前安裝的軟體包製作二進位發行版,請造訪 sagemath/binary-pkg。
要製作您自己的 Sage 來源 tarball,請輸入:
$ make dist
結果放置在目錄dist/
中。
Sage 中包含的所有軟體均受各自作者的版權保護,並根據與GPL 版本 3 或更高版本相容的開源許可證發布。有關更多詳細信息,請參閱 COPYING.txt。
原始碼位於upstream/
目錄中的未修改(盡可能)的 tarball 中。其餘的描述、版本資訊、補丁和建置腳本位於隨附的build/pkgs/
目錄中。該目錄是 Sage git 儲存庫的一部分。
版權所有 (C) 2005-2024 Sage 開發團隊
https://www.sagemath.org