Користувальницькі налаштування

Налаштування сайту


sage

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версійПопередня ревізія
Наступна ревізія
Попередня ревізія
sage [2014/06/30 10:54] – [Дополнительные пакеты] spectrum wombatsage [2016/10/25 09:45] (поточний) – Дополнительные пакеты wombat
Рядок 1: Рядок 1:
-===== Первичная установка =====+====== Sage ====== 
 + 
 +Приёмы работы и некоторые готовые рецепты описаны [[sage_tricks | здесь]]. 
 + 
 +====== Установка ====== 
 + 
 +===== На своём компьютере ===== 
 + 
 +==== Перед установкой ==== 
 + 
 +Поскольку при запуске и использовании Sage на одном и том же (своём) компьютере нет нужды заботиться ни о шифровании передаваемых данных, ни о доступе к удалённой консоли, в которой происходит сборка, практически никакие дополнительные программы не нужны. 
 + 
 +Для Debian GNU/Linux и Ubuntu 
 + 
 +  sudo apt-get install libpng12-dev 
 + 
 +//libpng// нужно для экспорта изображений в PNG-файлы в R. 
 + 
 +Создадим каталог, в который будем устанавливать Sage. 
 + 
 +  mkdir /home/username/sage 
 + 
 +Далее продолжить согласно разделу "Обновление" 
 + 
 + 
 +==== Обновление ==== 
 + 
 +**1.** Эвакуируем папку, в которой хранятся все рабочие листы нашего пользователя (///home/username/.sage//): 
 + 
 +  cd archive_catalog 
 +  tar -cvJf sage_home_backup-20120918.tar.xz /home/username/.sage 
 + 
 +Вместо даты ''20120918'', указанной в примере, разумно указывать текущую дату в формате "ГГГГММДД". ''archive_catalog'' -- каталог, в котором будет создана резервная копия. 
 + 
 +**2.** Проверяем, достаточно ли свободного места на диске (потребуется около 3,5 ГБ). 
 + 
 +**3.** Загружаем архив свежей версии Sage с одного из [[http://sagemath.org/download-source.html|зеркал]] и сравниваем контрольную сумму с указанной на сайте зеркала.  
 + 
 +Например, с http://mirror.yandex.ru/mirrors/sage.math.washington.edu/src/index.html или http://sage.igor.onlinedirect.bg/src/index.html 
 + 
 +  cd /home/username/sage 
 +  wget -c http://sage.igor.onlinedirect.bg/src/sage-6.4.1.tar.gz 
 +  md5sum sage-6.4.1.tar.gz 
 + 
 +**4.** Распаковываем архив с исходниками: 
 + 
 +  tar -xvf sage-6.4.1.tar.gz 
 + 
 +где ''sage-6.4.1.tar.gz'' заменить на имя скачанного файла. 
 + 
 +**5.** Переходим в распакованный каталог: 
 + 
 +  cd sage-6.4.1/ 
 + 
 +Для компиляции в 4 потока выполняем: 
 +  export MAKE="make -j4" 
 + 
 +**6.** Запускаем сборку: 
 + 
 +  make 
 + 
 +В случае использования пакетов, не входящих в комплект поставки Sage, после обновления самого Sage, необходимо обновить также и [[sage#Дополнительные пакеты|дополнительные пакеты]]. 
 + 
 +===== Дополнительные пакеты ===== 
 + 
 +==== Из коллекции Sage ==== 
 + 
 +Sage содержит информацию о ряде пакетов, которые проверены на работоспособность в среде Sage и внесены в соответствующий список. Получить полный список таких пакетов можно следующим образом((http://doc.sagemath.org/html/en/reference/misc/sage/misc/package.html?highlight=list_packages)): 
 + 
 +  sage: from sage.misc.package import list_packages 
 +  sage: list_packages() 
 + 
 +Список довольно велик, и чтобы отобразить только пакеты из определённого класса, можно указать аргумент этой функции: 
 + 
 +  sage: list_packages('standard'
 +  sage: list_packages('optional'
 +  sage: list_packages('experimental'
 +  sage: list_packages('pip'
 + 
 +Пакеты всех классов, кроме ''pip'', устанавливаются следующим образом: 
 + 
 +  sage -i <имя_пакета> 
 + 
 +Пакеты из класса ''pip'', устанавливаются следующим образом: 
 + 
 +  sage -pip install <имя_пакета> 
 + 
 +=== chardet === 
 + 
 +Библиотека [[https://github.com/chardet/chardet | chardet]] позволяет автоматически определять кодировку текстовых файлов и просматривать их в корректном виде. Поскольку этот пакет входит в списки Sage, но входит в класс ''pip'', устанавливаем его следующим образом: 
 + 
 +  sage -pip install chardet 
 + 
 +==== Пакеты R ==== 
 + 
 +  sage: r.install_packages('tseriesChaos'
 + 
 +==== Другие пакеты ==== 
 + 
 +Если я правильно понимаю, ключевой приём такой: 
 +    sage -python setup.py install 
 + 
 +Т.е. скачиваем пакет, распаковываем его куда-то. Заходим  в это "куда-то", но там вместо стандартного "''python setup.py install''" запускаем то, что написано выше. Хотя, перед этим лучше прочесть README или INSTALL в самом архиве пакета, понимая, что когда попадётся там команда типа приведённой выше, нужно вместо "''python''" подставить "''sage -python''"
 + 
 +=== mlpy === 
 + 
 +http://mlpy.sourceforge.net/ 
 + 
 +  wget 'http://downloads.sourceforge.net/project/mlpy/mlpy 3.5.0/mlpy-3.5.0.tar.gz' 
 +  tar xvf mlpy-3.5.0.tar.gz 
 + 
 +В файле документации к этому пакету //docs/source/install.txt// написано так: 
 + 
 +  $ python setup.py install 
 + 
 +Стало быть, нужно делать так: 
 + 
 +  # sage -python setup.py install 
 + 
 +=== spectrum === 
 + 
 +Для установки пакета spectrum потребовалось предварительно установить пакет easydev: 
 + 
 +  wget -cS 'https://pypi.python.org/packages/source/e/easydev/easydev-0.6.12.tar.gz' 
 +  tar xvf easydev-0.6.12.tar.gz 
 +  cd easydev-0.6.12/ 
 +  /opt/sage/sage -python setup.py install 
 + 
 +  wget -cS 'https://pypi.python.org/packages/source/s/spectrum/spectrum-0.5.6.tar.gz' 
 +  tar xvf spectrum-0.5.6.tar.gz 
 +  cd spectrum-0.5.6 
 +  /opt/sage/sage -python setup.py install 
 + 
 +Для пакетов, находящихся в PyPI, существует и такой способ установки: 
 + 
 +  /opt/sage/sage --python -m easy_install <имя_пакета> 
 + 
 +Однако, этот способ не заработал даже после установки pyopenssl: 
 + 
 +  /opt/sage/sage -i pyopenssl 
 + 
 + 
 + 
 +===== На удалённом сервере ===== 
 + 
 +Установка на сервер отличается от установки на локальный компьютер тем, что: 
 +  * Sage обычно устанавливается не в домашний каталог отдельного пользователя, а в //системный каталог//; 
 +  * запускается такой сервер также не от имени какого-либо реального пользователя, а от имени некоторого системного, специально созданного //виртуального пользователя//; 
 +  * от такого сервера обычно требуется //автоматический запуск//; 
 +  * для безопасного доступа к такому серверу, необходима //поддержка протокола HTTPS//; 
 +  * поскольку процесс компиляции может быть длительным, крайне желательно //работать через программу// ''screen''
 + 
 +==== Перед установкой ==== 
 + 
 +Установим необходимые дополнительные библиотеки:
  
 Для Debian GNU/Linux и Ubuntu Для Debian GNU/Linux и Ubuntu
  
-  apt-get install openssl libssl-dev libpng12-dev screen+  sudo apt-get install openssl libssl-dev libpng12-dev screen
  
 //OpenSSL// нужен для опции "secure" Sage Notebook'а. Работа по протоколу HTTPS. //OpenSSL// нужен для опции "secure" Sage Notebook'а. Работа по протоколу HTTPS.
Рядок 10: Рядок 164:
  
 //screen// удобен для выполнения длительных операций на удалённом сервере, например, по SSH. //screen// удобен для выполнения длительных операций на удалённом сервере, например, по SSH.
 +
 +Создадим группу и пользователя, от имени которых в дальнейшем будет запускаться Sage-сервер:
  
   groupadd sagenb   groupadd sagenb
   useradd -d /home/sagenb -g sagenb -m -s /usr/sbin/nologin sagenb   useradd -d /home/sagenb -g sagenb -m -s /usr/sbin/nologin sagenb
  
-===== Обновление =====+Создадим каталог для общесистемной установки Sage:
  
-В случае работы на удалённом компьютере, подключаемся к нему по SSH, запускаем+  sudo mkdir /opt/sage 
 + 
 +Далее выполняем то, что описано в разделе [[sage#Обновление1 |"Обновление"]]. 
 + 
 +==== Обновление ==== 
 + 
 +В случае подключения к удалённому компьютеру по SSHпосле подключения запускаем
  
   screen   screen
Рядок 22: Рядок 184:
 и все дальнейшие команды выполняем в его командной строке. и все дальнейшие команды выполняем в его командной строке.
  
-Эвакуируем папку ///home/sagenb/.sage//+**1.** Эвакуируем папку ''/home/sagenb/.sage''
  
   cd archive_catalog   cd archive_catalog
   tar -cvJf sage_home_backup-20120918.tar.xz /home/sagenb/.sage   tar -cvJf sage_home_backup-20120918.tar.xz /home/sagenb/.sage
  
-Вместо даты '20120918', указанной в примере, разумно указывать текущую дату в формате "ГГГГММДД". 'archive_catalog' -- каталог, в котором будет создана резервная копия.+Вместо даты ''20120918'', указанной в примере, разумно указывать текущую дату в формате "ГГГГММДД". 'эarchive_catalogэ' -- каталог, в котором будет создана резервная копия.
  
-Проверяем, достаточно ли свободного места на диске (потребуется около 3,5 ГБ). +**2.** Проверяем, достаточно ли свободного места на диске (потребуется около 3,5 ГБ).
- +
-Загружаем архив свежей версии Sage с одного из [[http://sagemath.org/download-source.html|зеркал]].  +
- +
-Например, с +
- +
-http://mirror.yandex.ru/mirrors/sage.math.washington.edu/src/index.html +
- +
-или+
  
-http://sage.igor.onlinedirect.bg/src/index.html+**3.** Загружаем архив свежей версии Sage с одного из [[http://sagemath.org/download-source.html|зеркал]]. 
  
-  wget -c http://sage.igor.onlinedirect.bg/src/sage-5.5.tar +Например, с http://mirror.yandex.ru/mirrors/sage.math.washington.edu/src/index.html или http://sage.igor.onlinedirect.bg/src/index.html и сравниваем контрольную сумму с указанной на сайте зеркала.
-  md5sum sage-5.5.tar+
  
-Сравниваем контрольную сумму с указанной на сайте зеркала, с которого был загружен архив.+  wget -c http://sage.igor.onlinedirect.bg/src/sage-6.4.1.tar.gz 
 +  md5sum sage-6.4.1.tar.gz
  
-Распаковываем архив с исходниками:+**4.** Распаковываем архив с исходниками:
  
-  cd /opt +  cd /opt/sage 
-  tar xvf sage-5.5.tar+  sudo tar -xvf /path/to/downloaded/sage-6.4.1.tar.gz
  
-где s//age-5.5.tar// заменить на имя скачанного файла.+где ''sage-6.4.1.tar.gz'' заменить на имя скачанного файла.
  
-Переходим в распакованный каталог:+**5.** Переходим в распакованный каталог:
  
   cd sage-5.5/   cd sage-5.5/
Рядок 60: Рядок 214:
   export MAKE="make -j4"   export MAKE="make -j4"
  
-Запускаем сборку:+**6.** Запускаем сборку:
  
   make   make
Рядок 67: Рядок 221:
 для сборки с поддержкой OpenSSL для сборки с поддержкой OpenSSL
  
-Если всё это выполняется в GNU Screen на удалённом компьютере, то "отсоединяем" консоль Screen от текущего экрана последовательным нажатием клавиш:+**7.** Если всё это выполняется в GNU Screen на удалённом компьютере, то "отсоединяем" консоль Screen от текущего экрана последовательным нажатием клавиш:
  
   Ctrl+a d   Ctrl+a d
Рядок 74: Рядок 228:
 В случае, если произошло "аварийное" отключение от сессии screen, его нужно сперва отключить от несуществующего более экрана, а затем подключить к нашему: В случае, если произошло "аварийное" отключение от сессии screen, его нужно сперва отключить от несуществующего более экрана, а затем подключить к нашему:
   screen -dr   screen -dr
 +
 +**8.** Для удобства общесистемного использования Sage, удобно создать ссылку на его исполнимый файл в одном из каталогов, перечисленных в переменной окружения ''PATH''. Обычно подходит каталог ''/usr/local/bin/''. После успешной сборки Sage мы видим такое сообщение:
  
   You *should* be able to move the sage-x.y.z/ directory anywhere you   You *should* be able to move the sage-x.y.z/ directory anywhere you
Рядок 86: Рядок 242:
  
 В случае использования пакетов, не входящих в комплект поставки Sage, после обновления Sage-сервера, необходимо обновить также и [[sage#Дополнительные пакеты|дополнительные пакеты]]. В случае использования пакетов, не входящих в комплект поставки Sage, после обновления Sage-сервера, необходимо обновить также и [[sage#Дополнительные пакеты|дополнительные пакеты]].
-===== Дополнительные пакеты ===== 
  
  
-В общем, если я правильно понял, то ключевой приём такой: +==== Автозапуск ====
-    sage -python setup.py install+
  
-Т.е. качаешь пакет, распаковываешь его куда-то. Заходишь  в это "куда-то", но там вместо стандартного "python setup.py install" мутишь то, что я написал. Хотяперед этим лучше прочесть README или INSTALL в самом архиве пакета, понимая, что когда попадётся там команда типа приведённой выше, нужно всунуть "sage -python" вместо питона+Ниже приводится пример построения сценария автозапуска Sage-сервера для Debian или Ubuntu.
- +
-==== Пакеты R ==== +
- +
-  sage: r.install_packages('tseriesChaos'+
- +
-==== mlpy ==== +
- +
-http://mlpy.sourceforge.net/ +
- +
-  wget 'http://downloads.sourceforge.net/project/mlpy/mlpy 3.5.0/mlpy-3.5.0.tar.gz' +
-  tar xvf mlpy-3.5.0.tar.gz +
- +
-В файле документации к этому пакету //docs/source/install.txt// написано так: +
- +
-  $ python setup.py install +
- +
-Стало быть, нужно делать так: +
- +
-  # sage -python setup.py install +
- +
-==== spectrum ==== +
-===== Debian =====+
  
 Если Sage компилировали **без поддержки //OpenSSL//**, то опцию "secure" нужно выключить. Если Sage компилировали **без поддержки //OpenSSL//**, то опцию "secure" нужно выключить.
  
-  DAEMON_ARGS='-interface=192.168.1.101 port=8000 secure=False automatic_login=False'+  DAEMON_ARGS='--notebook=sagenb interface=192.168.1.101 port=8000 secure=False automatic_login=False'
      
 в противном случае предпочтительно оставить её включённой: в противном случае предпочтительно оставить её включённой:
  
-  DAEMON_ARGS='-interface=192.168.1.101 port=8000 secure=True automatic_login=False'+  DAEMON_ARGS='--notebook=sagenb interface=192.168.1.101 port=8000 secure=True automatic_login=False'
      
-Здесь 192.168.1.101 -- сетевой адрес компьютера, на котором будет работать Sage Notebook сервер. Если оставить строку адреса пустой, т.е.+Здесь ''192.168.1.101'' -- сетевой адрес компьютера, на котором будет работать Sage Notebook сервер. Если оставить строку адреса пустой, т.е.
  
-  DAEMON_ARGS='-interface= port=8000 secure=True automatic_login=False'+  DAEMON_ARGS='--notebook=sagenb interface= port=8000 secure=True automatic_login=False'
      
 то Sage Notebook сервер должен работать на всех сетевых интерфейсах компьютера. то Sage Notebook сервер должен работать на всех сетевых интерфейсах компьютера.
Рядок 157: Рядок 289:
 ###DAEMON=/usr/sbin/$NAME ###DAEMON=/usr/sbin/$NAME
 ##DAEMON_ARGS="--options args" ##DAEMON_ARGS="--options args"
-DAEMON_ARGS='-interface= port=8000 secure=True automatic_login=False'+ 
 +# Listen on localhost only. Useful for accessing through the HTTP proxy on the same host. 
 +#DAEMON_ARGS='--notebook=sagenb interface=localhost port=8000 secure=False automatic_login=False' 
 +
 +# Listen on all interfaces with SSL encryption 
 +DAEMON_ARGS='--notebook=sagenb interface= port=8000 secure=True automatic_login=False' 
 +
 +# Listen on all interfaces without SSL (DANGEROUS!!!). For testing purposes only. 
 +#DAEMON_ARGS='--notebook=sagenb interface= port=8000 secure=False automatic_login=False' 
 USERNAME="sagenb" USERNAME="sagenb"
 GROUPNAME="sagenb" GROUPNAME="sagenb"
Рядок 298: Рядок 439:
 </file> </file>
  
-===== После установки/обновления =====+==== После установки/обновления ====
  
   /etc/init.d/sage restart   /etc/init.d/sage restart
  
-===== Sage через прокси =====+==== Sage через прокси ====
  
 Чтобы иметь доступ к Sage-серверу с компьютеров, которым не разрешены соединения в нестандартные порты (например, в 8000), можно настроить прокси-сервер, который будет ожидать соединения на 80-м порту (в случае HTTP) или на 443-м порту (в случае HTTPS) и перенаправлять их запущенному Sage-серверу. Чтобы иметь доступ к Sage-серверу с компьютеров, которым не разрешены соединения в нестандартные порты (например, в 8000), можно настроить прокси-сервер, который будет ожидать соединения на 80-м порту (в случае HTTP) или на 443-м порту (в случае HTTPS) и перенаправлять их запущенному Sage-серверу.
  
-Создадим для этого SSL-сертификат сервера:+Создадим для этого SSL-сертификат сервера((Самоподписанный сертификат по умолчанию не считается доверенным большинством программ, поэтому они будут выдавать запрос на его подтверждение. Можно получить доверенный SSL-сертификат для своего домена бесплатно -- см. [[https://letsencrypt.readthedocs.org/en/latest/intro.html | Let’s Encrypt ]])):
  
   openssl req -new -x509 -days 365 -nodes -out "sagenb.wombat.org.ua.crt" -keyout "sagenb.wombat.org.ua.key"   openssl req -new -x509 -days 365 -nodes -out "sagenb.wombat.org.ua.crt" -keyout "sagenb.wombat.org.ua.key"
Рядок 312: Рядок 453:
 Полученные файлы поместим в ''/etc/sagenb/certs/'' Полученные файлы поместим в ''/etc/sagenb/certs/''
  
-==== Apache ====+=== Apache ===
  
 При использовании веб-сервера Apache, необходимо в его файле конфигурации указать следующее: При использовании веб-сервера Apache, необходимо в его файле конфигурации указать следующее:
  
 <file conf /etc/apache2.conf> <file conf /etc/apache2.conf>
 +<VirtualHost *:80>
 +   ServerName sagenb.wombat.org.ua
 +   Redirect permanent / https://sagenb.wombat.org.ua/
 +</VirtualHost>
  
-<VirtualHost *:80 *:443>+<VirtualHost *:443>
     ServerName sagenb.wombat.org.ua     ServerName sagenb.wombat.org.ua
-    + 
     ProxyRequests off     ProxyRequests off
-    #SSLProxyEngine On+   SSLProxyEngine On
     SSLEngine on     SSLEngine on
     SSLCertificateFile "/etc/sagenb/certs/sagenb.wombat.org.ua.crt"     SSLCertificateFile "/etc/sagenb/certs/sagenb.wombat.org.ua.crt"
Рядок 339: Рядок 484:
 Также нужно убедиться, что по умолчанию загружаются модули ''mod_proxy'', ''mod_ssl'' и ''mod_proxy_http''. Также нужно убедиться, что по умолчанию загружаются модули ''mod_proxy'', ''mod_ssl'' и ''mod_proxy_http''.
  
 +====== Использование Sage ======
 +
 +== Sage Tutorial ==
 +
 +[[http://sagemath.org/doc/tutorial/index.html | Sage Tutorial ]]
 +
 +[[http://freetonik.com/sage/tutorial/ | Русская версия учебного пособия Sage]]
 +
 +== SDSU Sage Tutorial ==
 +
 +[[http://www-rohan.sdsu.edu/~mosulliv/Teaching/sdsu-sage-tutorial/ | SDSU Sage Tutorial]]
 +
 +== Books ==
 +
 +[[http://www.gregorybard.com/sage_for_undergraduates_color.pdf.zip | Sage for Undergraduates]]
 +
 +[[https://www.packtpub.com/hardware-and-creative/sage-beginners-guide | Sage Beginner's Guide by Craig Finch]]
 +
 +
 +== wikisage ==
 +
 +[[http://wikisage.ru/ | wikisage.ru]]
 +
 +
 +== William Stein courses ==
 +
 +[[http://wstein.org/courses/]]
sage.1404125671.txt.bz2 · Востаннє змінено: повз wombat