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

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


sage

Розбіжності

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

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

Порівняння попередніх версійПопередня ревізія
Наступна ревізія
Попередня ревізія
sage [2014/07/07 20:33] – [Debian] sage startup script modified wombatsage [2016/10/25 09:45] (поточний) – Дополнительные пакеты wombat
Рядок 1: Рядок 1:
-===== Первичная установка =====+====== Sage ======
  
-Для Debian GNU/Linux и Ubuntu+Приёмы работы и некоторые готовые рецепты описаны [[sage_tricks | здесь]].
  
-  apt-get install openssl libssl-dev libpng12-dev screen+====== Установка ======
  
-//OpenSSL// нужен для опции "secure" Sage Notebook'а. Работа по протоколу HTTPS.+===== На своём компьютере =====
  
-//libpng// нужно для R. Экспорт в PNG-файлы.+==== Перед установкой ====
  
-//screen// удобен для выполнения длительных операций на удалённом сервере, например, по SSH.+Поскольку при запуске и использовании Sage на одном и том же (своём) компьютере нет нужды заботиться ни о шифровании передаваемых данных, ни о доступе к удалённой консоли, в которой происходит сборкапрактически никакие дополнительные программы не нужны.
  
-  groupadd sagenb +Для Debian GNU/Linux и Ubuntu
-  useradd -d /home/sagenb -g sagenb -m -s /usr/sbin/nologin sagenb+
  
-===== Обновление =====+  sudo apt-get install libpng12-dev
  
-В случае работы на удалённом компьютере, подключаемся к нему по SSH, запускаем+//libpng// нужно для экспорта изображений в PNG-файлы в R.
  
-  screen+Создадим каталог, в который будем устанавливать Sage.
  
-и все дальнейшие команды выполняем в его командной строке.+  mkdir /home/username/sage
  
-Эвакуируем папку ///home/sagenb/.sage//+Далее продолжить согласно разделу "Обновление"
  
-  cd archive_catalog 
-  tar -cvJf sage_home_backup-20120918.tar.xz /home/sagenb/.sage 
  
-Вместо даты '20120918', указанной в примере, разумно указывать текущую дату в формате "ГГГГММДД". 'archive_catalog' -- каталог, в котором будет создана резервная копия.+==== Обновление ====
  
-Проверяем, достаточно ли свободного места на диске (потребуется около 3,5 ГБ).+**1.** Эвакуируем папкув которой хранятся все рабочие листы нашего пользователя (///home/username/.sage//):
  
-Загружаем архив свежей версии Sage с одного из [[http://sagemath.org/download-source.html|зеркал]]+  cd archive_catalog 
 +  tar -cvJf sage_home_backup-20120918.tar.xz /home/username/.sage
  
-Например, с+Вместо даты ''20120918'', указанной в примереразумно указывать текущую дату в формате "ГГГГММДД". ''archive_catalog'' -- каталог, в котором будет создана резервная копия.
  
-http://mirror.yandex.ru/mirrors/sage.math.washington.edu/src/index.html+**2.** Проверяем, достаточно ли свободного места на диске (потребуется около 3,5 ГБ).
  
-или+**3.** Загружаем архив свежей версии Sage с одного из [[http://sagemath.org/download-source.html|зеркал]] и сравниваем контрольную сумму с указанной на сайте зеркала. 
  
-http://sage.igor.onlinedirect.bg/src/index.html+Например, с http://mirror.yandex.ru/mirrors/sage.math.washington.edu/src/index.html или http://sage.igor.onlinedirect.bg/src/index.html
  
-  wget -c http://sage.igor.onlinedirect.bg/src/sage-5.5.tar +  cd /home/username/sage 
-  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.** Распаковываем архив с исходниками:
  
-Распаковываем архив с исходниками:+  tar -xvf sage-6.4.1.tar.gz
  
-  cd /opt +где ''sage-6.4.1.tar.gz'' заменить на имя скачанного файла.
-  tar xvf sage-5.5.tar+
  
-где s//age-5.5.tar// заменить на имя скачанного файла.+**5.** Переходим в распакованный каталог:
  
-Переходим в распакованный каталог: +  cd sage-6.4.1/
- +
-  cd sage-5.5/+
  
 Для компиляции в 4 потока выполняем: Для компиляции в 4 потока выполняем:
   export MAKE="make -j4"   export MAKE="make -j4"
  
-Запускаем сборку:+**6.** Запускаем сборку:
  
   make   make
-или 
-  make ssl 
-для сборки с поддержкой OpenSSL 
  
-Если всё это выполняется в GNU Screen на удалённом компьютере, то тсоединяем" консоль Screen от текущего экрана последовательным нажатием клавиш:+В случае использования пакетовне входящих в комплект поставки Sage, после обновления самого Sage, необходимо обновить также и [[sage#Дополнительные пакеты|дополнительные пакеты]].
  
-  Ctrl+a d +===== Дополнительные пакеты =====
-Чтобы потом снова подключиться к запущенной сессии screen, нужно выполнить +
-  screen -r +
-В случае, если произошло "аварийное" отключение от сессии screen, его нужно сперва отключить от несуществующего более экрана, а затем подключить к нашему: +
-  screen -dr+
  
-  You *should* be able to move the sage-x.y.z/ directory anywhere you +==== Из коллекции Sage ====
-  want. If you copy the sage script or make a symbolic link to it, you +
-  should modify the script to reflect this (as instructed at the top of +
-  the script). It is best if the path to Sage does not have any spaces in +
-  it.+
  
-Создаём символическую ссылку на исполнимый файл Sage:+Sage содержит информацию о ряде пакетов, которые проверены на работоспособность в среде Sage и внесены в соответствующий список. Получить полный список таких пакетов можно следующим образом((http://doc.sagemath.org/html/en/reference/misc/sage/misc/package.html?highlight=list_packages)):
  
-  ln -fs /opt/sage-5.5/sage /usr/local/bin/sage+  sage: from sage.misc.package import list_packages 
 +  sage: list_packages()
  
-В случае использования пакетов, не входящих в комплект поставки Sage, после обновления Sage-серверанеобходимо обновить также и [[sage#Дополнительные пакетыополнительные пакеты]]. +Список довольно велики чтобы отобразить только пакеты из определённого класса, можно указать аргумент этой функции:
-===== Дополнительные пакеты =====+
  
 +  sage: list_packages('standard')
 +  sage: list_packages('optional')
 +  sage: list_packages('experimental')
 +  sage: list_packages('pip')
  
-В общем, если я правильно понял, то ключевой приём такой+Пакеты всех классов, кроме ''pip''устанавливаются следующим образом
-    sage -python setup.py install+ 
 +  sage -i <имя_пакета>
  
-Т.е. качаешь пакет, распаковываешь его куда-то. Заходишь  в это "кудао", но там вместо стандартного "python setup.py install" мутишь то, что я написал. Хотя, перед этим лучше прочесть README или INSTALL в самом архиве пакета, понимая, что когда попадётся там команда типа приведённой выше, нужно всунуть "sage -python" вместо питона.+Пакеты из класса ''pip'', устанавливаются следующим образом: 
 + 
 +  sage -pip install <имя_пакета
 + 
 +=== chardet === 
 + 
 +Библиотека [[https://github.com/chardet/chardet | chardet]] позволяет автоматически определять кодировку текстовых файлов и просматривать их в корректном виде. Поскольку этот пакет входит в списки Sage, но входит в класс ''pip'', устанавливаем его следующим образом: 
 + 
 +  sage -pip install chardet
  
 ==== Пакеты R ==== ==== Пакеты R ====
Рядок 98: Рядок 96:
   sage: r.install_packages('tseriesChaos')   sage: r.install_packages('tseriesChaos')
  
-==== mlpy ====+==== Другие пакеты ==== 
 + 
 +Если я правильно понимаю, ключевой приём такой: 
 +    sage -python setup.py install 
 + 
 +Т.е. скачиваем пакет, распаковываем его куда-то. Заходим  в это "куда-то", но там вместо стандартного "''python setup.py install''" запускаем то, что написано выше. Хотя, перед этим лучше прочесть README или INSTALL в самом архиве пакета, понимая, что когда попадётся там команда типа приведённой выше, нужно вместо "''python''" подставить "''sage -python''"
 + 
 +=== mlpy ===
  
 http://mlpy.sourceforge.net/ http://mlpy.sourceforge.net/
Рядок 113: Рядок 118:
   # sage -python setup.py install   # sage -python setup.py install
  
-==== spectrum ====+=== spectrum ===
  
 Для установки пакета spectrum потребовалось предварительно установить пакет easydev: Для установки пакета spectrum потребовалось предварительно установить пакет easydev:
Рядок 135: Рядок 140:
   /opt/sage/sage -i pyopenssl   /opt/sage/sage -i pyopenssl
  
-===== Debian =====+ 
 + 
 +===== На удалённом сервере ===== 
 + 
 +Установка на сервер отличается от установки на локальный компьютер тем, что: 
 +  * Sage обычно устанавливается не в домашний каталог отдельного пользователя, а в //системный каталог//; 
 +  * запускается такой сервер также не от имени какого-либо реального пользователя, а от имени некоторого системного, специально созданного //виртуального пользователя//; 
 +  * от такого сервера обычно требуется //автоматический запуск//; 
 +  * для безопасного доступа к такому серверу, необходима //поддержка протокола HTTPS//; 
 +  * поскольку процесс компиляции может быть длительным, крайне желательно //работать через программу// ''screen''
 + 
 +==== Перед установкой ==== 
 + 
 +Установим необходимые дополнительные библиотеки: 
 + 
 +Для Debian GNU/Linux и Ubuntu 
 + 
 +  sudo apt-get install openssl libssl-dev libpng12-dev screen 
 + 
 +//OpenSSL// нужен для опции "secure" Sage Notebook'а. Работа по протоколу HTTPS. 
 + 
 +//libpng// нужно для R. Экспорт в PNG-файлы. 
 + 
 +//screen// удобен для выполнения длительных операций на удалённом сервере, например, по SSH. 
 + 
 +Создадим группу и пользователя, от имени которых в дальнейшем будет запускаться Sage-сервер: 
 + 
 +  groupadd sagenb 
 +  useradd -d /home/sagenb -g sagenb -m -s /usr/sbin/nologin sagenb 
 + 
 +Создадим каталог для общесистемной установки Sage: 
 + 
 +  sudo mkdir /opt/sage 
 + 
 +Далее выполняем то, что описано в разделе [[sage#Обновление1 |"Обновление"]]. 
 + 
 +==== Обновление ==== 
 + 
 +В случае подключения к удалённому компьютеру по SSH, после подключения запускаем 
 + 
 +  screen 
 + 
 +и все дальнейшие команды выполняем в его командной строке. 
 + 
 +**1.** Эвакуируем папку ''/home/sagenb/.sage'' 
 + 
 +  cd archive_catalog 
 +  tar -cvJf sage_home_backup-20120918.tar.xz /home/sagenb/.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 и сравниваем контрольную сумму с указанной на сайте зеркала. 
 + 
 +  wget -c http://sage.igor.onlinedirect.bg/src/sage-6.4.1.tar.gz 
 +  md5sum sage-6.4.1.tar.gz 
 + 
 +**4.** Распаковываем архив с исходниками: 
 + 
 +  cd /opt/sage 
 +  sudo tar -xvf /path/to/downloaded/sage-6.4.1.tar.gz 
 + 
 +где ''sage-6.4.1.tar.gz'' заменить на имя скачанного файла. 
 + 
 +**5.** Переходим в распакованный каталог: 
 + 
 +  cd sage-5.5/ 
 + 
 +Для компиляции в 4 потока выполняем: 
 +  export MAKE="make -j4" 
 + 
 +**6.** Запускаем сборку: 
 + 
 +  make 
 +или 
 +  make ssl 
 +для сборки с поддержкой OpenSSL 
 + 
 +**7.** Если всё это выполняется в GNU Screen на удалённом компьютере, то "отсоединяем" консоль Screen от текущего экрана последовательным нажатием клавиш: 
 + 
 +  Ctrl+a d 
 +Чтобы потом снова подключиться к запущенной сессии screen, нужно выполнить 
 +  screen -r 
 +В случае, если произошло "аварийное" отключение от сессии screen, его нужно сперва отключить от несуществующего более экрана, а затем подключить к нашему: 
 +  screen -dr 
 + 
 +**8.** Для удобства общесистемного использования Sage, удобно создать ссылку на его исполнимый файл в одном из каталогов, перечисленных в переменной окружения ''PATH''. Обычно подходит каталог ''/usr/local/bin/''. После успешной сборки Sage мы видим такое сообщение: 
 + 
 +  You *should* be able to move the sage-x.y.z/ directory anywhere you 
 +  want. If you copy the sage script or make a symbolic link to it, you 
 +  should modify the script to reflect this (as instructed at the top of 
 +  the script). It is best if the path to Sage does not have any spaces in 
 +  it. 
 + 
 +Создаём символическую ссылку на исполнимый файл Sage: 
 + 
 +  ln -fs /opt/sage-5.5/sage /usr/local/bin/sage 
 + 
 +В случае использования пакетов, не входящих в комплект поставки Sage, после обновления Sage-сервера, необходимо обновить также и [[sage#Дополнительные пакеты|дополнительные пакеты]]. 
 + 
 + 
 +==== Автозапуск ==== 
 + 
 +Ниже приводится пример построения сценария автозапуска Sage-сервера для Debian или Ubuntu.
  
 Если 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 сервер должен работать на всех сетевых интерфейсах компьютера.
Рядок 180: Рядок 291:
  
 # Listen on localhost only. Useful for accessing through the HTTP proxy on the same host. # Listen on localhost only. Useful for accessing through the HTTP proxy on the same host.
-#DAEMON_ARGS='-interface=localhost port=8000 secure=True automatic_login=False'+#DAEMON_ARGS='--notebook=sagenb interface=localhost port=8000 secure=False automatic_login=False'
 # #
 # Listen on all interfaces with SSL encryption # Listen on all interfaces with SSL encryption
-DAEMON_ARGS='-interface= port=8000 secure=True automatic_login=False'+DAEMON_ARGS='--notebook=sagenb interface= port=8000 secure=True automatic_login=False'
 # #
 # Listen on all interfaces without SSL (DANGEROUS!!!). For testing purposes only. # Listen on all interfaces without SSL (DANGEROUS!!!). For testing purposes only.
-#DAEMON_ARGS='-interface= port=8000 secure=True automatic_login=False'+#DAEMON_ARGS='--notebook=sagenb interface= port=8000 secure=False automatic_login=False'
  
 USERNAME="sagenb" USERNAME="sagenb"
Рядок 328: Рядок 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"
Рядок 342: Рядок 453:
 Полученные файлы поместим в ''/etc/sagenb/certs/'' Полученные файлы поместим в ''/etc/sagenb/certs/''
  
-==== Apache ====+=== Apache ===
  
 При использовании веб-сервера Apache, необходимо в его файле конфигурации указать следующее: При использовании веб-сервера Apache, необходимо в его файле конфигурации указать следующее:
- 
-<file conf /etc/apache2.conf> 
  
 <file conf /etc/apache2.conf> <file conf /etc/apache2.conf>
 <VirtualHost *:80> <VirtualHost *:80>
    ServerName sagenb.wombat.org.ua    ServerName sagenb.wombat.org.ua
-   Redirect permanent / https://sagenb.wombat.org.ua+   Redirect permanent / https://sagenb.wombat.org.ua/
 </VirtualHost> </VirtualHost>
  
Рядок 375: Рядок 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.1404765211.txt.bz2 · Востаннє змінено: повз wombat