Differences between revisions 18 and 44 (spanning 26 versions)
Revision 18 as of 2012-05-22 15:08:06
Size: 13488
Editor: vbraun
Comment:
Revision 44 as of 2022-03-31 02:19:04
Size: 0
Editor: mkoeppe
Comment: outdated
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= The Sage Virtual Machine =

This page describes how to use the Sage appliance that you can download from [[http://www.sagemath.org/download-windows.html]]. This page covers Sage versions 5 and higher; For previous versions see [[SageApplianceV4|the old manual]].

<<TableOfContents(2)>>



== Installation ==

The Sage appliance (packaged virtual machine) can be used on any operating system that supports the free
!VirtualBox player, for example Microsoft Windows. Your computer must
have at least 7 GB (!) of free disk space and at least 512 MB of RAM. The virtual machine can also be used with other hypervisors like VMware. However, unless you are already familiar with VMware, we recommend that you use !VirtualBox. In our experience, it is easier for non-technical users.

If you are familiar with !VirtualBox, you can just import the Sage appliance. For detailed step-by-step instructions, please see the [[SageApplianceInstallation|installation instructions]] page for details.

  1. Download !VirtualBox (available at http://www.virtualbox.org/wiki/Downloads). Install it anywhere you want. Version 4 or later is required.

  1. Download the file `sage-x.y.z.ova` (for example, `sage-4.7.2.ova`) from [[http://www.sagemath.org/download-windows.html]] (select the location nearest to you).

  {{attachment:0download_ova.JPG|Sage webpage download|width=800}}

  1. Open !VirtualBox. Your screen should look like this:

  {{attachment:1openvbox.JPG}}

  1. Import `sage-x.y.z.ova` by clicking '''File''', then '''Import Appliance''':

  {{attachment:2import.JPG}}

  1. You should see an '''Appliance Import Wizard''' window open:

  {{attachment:3import_wizard.JPG}}

  1. Import the Sage appliance by clicking '''Choose''' then browsing for the file sage-x.y.z.ova downloaded earlier. Select the file and click '''Next'''.

  1. It is recommended that you accept the settings that appear on the next window by clicking '''Finish''':

  {{attachment:4wizard_settings.JPG}}

  1. The import will now begin. You should see a progress window:

  {{attachment:5importing_progress.JPG}}

  1. Once the import is complete, your VirtualBox manager should now look like one of the following images:

  {{attachment:6manager_after_import.JPG}}

  {{attachment:7manager_after_import_alt.JPG}}
  

== Using the Sage Notebook ==

  1. Start !VirtualBox.

  1. To start the Sage notebook server, power on Sage-x.y.z by selecting
  it and clicking 'Start'. (This may take awhile. You may see some
  warning messages you can safely ignore.)

  1. You may see an '''Information''' window explaining how to integrate the mouse pointer with the virtual machine:

  {{attachment:12mouse_pointer.JPG}}

  1. Wait a few moments until the running !VirtualBox window displays a
  message saying '''Open your web browser to ...'''. Now open the web
  browser that you usually use (it's best to use Firefox or Chrome) and
  go to the address [[http://localhost:8000]].

  {{attachment:13localhost.JPG}}
  <<BR>>

  Note: Starting with Sage-5.0 the virtual machine opens a graphical notebook. You can either use the web browser that you usually use, or you can use the notebook directly within the !VirtualBox window. Either way, the following page should appear:

  {{attachment:14sage_notebook.JPG|Empty Sage notebook|width=800}}

  1. If you would like other users to be able to create additional accounts
  on the same local virtual machine, you will first need to complete some
  further steps. See the advanced options section below.

  1. When you are finished working with Sage, close your browser
  as usual (it is not necessary to '''Sign Out'''). In the running !VirtualBox window, click '''Machine''', then '''Close''':

  {{attachment:15close.JPG}}

  Select '''Send the shutdown signal''' then click '''OK''':

  {{attachment:16close.JPG}}

  The running window will closed automatically, and then you may close !VirtualBox.


== Sharing files between Sage and Windows ==

If you want to enable shared folders between Sage and your Windows system, complete the following steps:

  1. In the running !VirtualBox window, click '''Devices''', then '''Shared Folders''':

  {{attachment:8shared_folders.JPG}}

  1. Click on the icon with a green '''+''' in the upper right corner:

  {{attachment:9shared_folders.jpg}}

  1. Under '''Folder Path''', browse to select the path of the Windows folder that you want to share using the pull-down menu and selecting '''Other''':

  {{attachment:10shared_folders.JPG}}

  1. Check '''Auto-mount''' and '''Make Permanent'''. Click '''OK''', then click '''OK''' again.

  1. From the menu, select '''Machine''', then '''Reset''':

  {{attachment:11shared_folders.JPG|align="center"}}

The files will be in `/media/sf_<volume name>`.

== Using the Sage shell ==

  1. Start !VirtualBox if you have not already done so.

  1. Power on `sage-x.y.z` (if you have not already done so) by selecting it
  and clicking '''Start'''.

  1. Once the virtual machine is powered on, press '''Ctrl C''' to quit the Sage notebook.

  1. Type
  {{{
./sage
  }}}
  on the command line to start a shell interface in Sage.

  1. To work with files attached in a shared folder (if you have shared folders
  enabled), type
  {{{
attach /media/sf_<volume name>/filename
  }}}
  in the Sage command line session.


== Troubleshooting ==

  * If you experience problems, get free tech support by subscribing to the
  sage-support mailing list at [[http://groups.google.com/group/sage-support]]

  * Or login to the IRC channel #sagemath on irc.freenode.net.

  * Or use http://ask.sagemath.org


= Advanced Options =

  * You can log into the virtual machine from the text-mode console. Press Alt-F1 for a different tty. The user account running the Sage notebook server is called `sage` with password `sage`. The root account password is `sage`, too.

  * You can also log into the virtual machine via ssh to port 2222. For example, with the command-line ssh client you would type
  {{{
ssh -p 2222 localhost
  }}}
  on the host computer to log into the virtual machine.

  * Advanced users may want to note that the `sage` user is in the sudoers file now. You can run any command with administrative rights by `sudo <command>`.

  * List available optional packages with the `optional_packages()`
  command and type `install_package('exact package name')` to install a
  package. You can do this from an input box in the notebook.

  * To upgrade between stable releases, you can type the following
  at the command prompt:
  {{{
[sage@localhost sage]$ sage -upgrade
  }}}
  Running an upgrade will take a significant amount of time.
  This ''will'' merge your changes to the Sage library with the
  latest version of Sage and build everything.

  WARNING: This will use up more disk space and is ''not'' guaranteed to
  result in a working upgraded Sage installation.


== Changing the keyboard layout ==

To temporarily change the keyboard layout (for example, French AZERTY), you can drop to the shell and run the command
{{{
sudo loadkeys azerty
}}}
To make this change permanent, you have to edit a configuration file. Run
{{{
sudo nano /etc/sysconfig/keyboard
}}}
and set it to the following:
{{{
KEYTABLE="fr-latin1"
MODEL="pc105+inet"
LAYOUT="fr"
}}}

== Giving Others Access to the Sage Virtual Machine ==

You can run the Sage appliance as a server on the network, so that others can access it similar to [[http://www.sagenb.org]]. In this case, you have to make some changes to the virtual machine such that not everybody can log in.

  1. Log into the virtual machine as root: In the virtual machine, press `Alt-F1`, log in as user `root` with password `sage`. See the advanced options section for more details.

  1. Once you are logged in as root, change the password for both the root and sage user account:
  {{{
[root@sage ~]# passwd root
Changing password for user root.
Retype new password:
passwd: all authentication tokens updated successfully.
[root@sage ~]# passwd sage
Changing password for user sage.
Retype new password:
passwd: all authentication tokens updated successfully.
  }}}

  1. Now switch to the sage account. You can either log in as sage with the new password, or type
  {{{
[root@sage ~]# su sage
[sage@sage root]$ cd
[sage@sage ~]$
  }}}

  1. Configure the notebook server to start in a secure mode. For this, you have to edit the `.bash_profile` file in the sage account. For example, type
  {{{
[sage@sage ~]$ nano .bash_profile
  }}}
  and replace the line
  {{{
./sage -notebook interface=\'\' port=8000 open_viewer=False require_login=False
  }}}
  with
  {{{
./sage -notebook interface=\'\' port=8000 open_viewer=False require_login=True secure=True
  }}}
  Then press `Ctrl X` to exit, and `y` when nano asks you to save the file before exiting (save it again as `.bash_profile`).

  1. Now reboot the virtual appliance:
  {{{
[sage@sage ~]$ exit
exit
[root@sage ~]# reboot
  }}}
   
  1. Upon the reboot, Sage will ask for some further information. You will find the following in the VirtualBox window:
  {{{
----------------------------------------------------------------------
| Sage Version ..., Release Date: ... |
| Type notebook() for the GUI, and license() for information. |
----------------------------------------------------------------------

Please wait while the Sage Notebook server starts...
...
notebook(interface=r'''''''',port=8000,open_viewer=False,require_login=True,secure=True)
The notebook files are stored in: sage_notebook.sagenb
In order to use an SECURE encrypted notebook, you must first run notebook.setup().
Now running notebook.setup()
Domain name [localhost]:
  }}}
  Simply press return to use the default domain name. A SSL cryptographic key is then automatic created with this hostname.
  
  1. Now set up an admin password for the Sage notebook server. Unless you have set up such an account previously, Sage will ask you for a password automatically:
  {{{
Please choose a new password for the Sage Notebook 'admin' user.
Do _not_ choose a stupid password, since anybody who could guess your password
and connect to your machine could access or delete your files.
NOTE: Only the md5 hash of the password you type is stored by Sage.
You can change your password by typing notebook(reset=True).

Enter new password:
  }}}
  Please enter a new password following the instructions.

  1. Optional: Once your Sage server is secured, you can make it accessible from the network. For this, you have to stop the virtual machine (not just suspend it). Then, in the !VirtualBox window, go to '''Settings''' -> '''Network''' -> '''Adapter 1'''. It does say '''Attached to: NAT'''. Switch it to '''Bridged Adapter'''. Click OK and restart the virtual machine. Note: This makes your virtual machine accessible from the network. Only perform this step after you have changed passwords and configured the notebook server to be secure, as described above.

  1. Optional: Give the Sage virtual machine more resources, so it can server more clients. Go to '''Settings''' -> '''System'''. On the '''Motherboard''' tab, increase '''Base Memory''' to about half of the physical ram of your host computer. On the '''Processor''' tab, increase the number of processors to your host CPU number of cores. Finally, on the '''Acceleration''' tab, enable VT-x/AMD-V if your CPU supports this.

To connect to the Sage server, you have to use `https://...` instead of `http://...`. For example, on the host computer where the virtual machine is running, the Sage server listens at [[https://localhost:8000]]. Since our SSL key is not signed by a certificate authority (which you can do, but it does cost money) web browsers will show a warning that the authority of the key cannot be verified. While a signed SSL key would provide a higher level of security, the network data between the browser and the Sage server is nevertheless encrypted.




== How to become a Sage developer ==

Some Unix familiarity is assumed below. If you've never used anything
but Windows, some of this won't make sense.
 
  1. Change to the `$SAGE_ROOT` directory:
  {{{
[sage@localhost directory]$ cd
[sage@localhost ~]$ cd sage
[sage@localhost sage]$
  }}}

  1. To actually edit files, you'll perhaps want to install the editor
  of your choice. For example, to install Emacs do this:
  {{{
[sage@localhost sage]$ sudo yum install emacs
  }}}
  The nano editor is included.

  1. Now type, for example,
  {{{
[sage@localhost sage]$ cd devel/sage/sage/rings/
[sage@localhost rings]$ emacs arith.py
  }}}
  or
  {{{
[sage@localhost rings]$ nano arith.py
  }}}
  and edit the file to your heart's content.

  1. Save the file and type '''sage -br''' to build the changes and install them:
  {{{
[sage@localhost rings]$ cd
[sage@localhost ~]$ cd sage
[sage@localhost sage]$ sage -br
----------------------------------------------------------
sage: Building and installing modified SAGE library files.
...
----------------------------------------------------------------------
| SAGE Version x.y.z, Release Date: .........
  }}}