SageMath and Python on Jupyter

SageMath 是一个开源免费的数学软件,综合了大量的开源数学软件,用Python当做软件基本语言。因此,可以在使用Python的过程中,把SageMath当做一个额外功能模块来用。当然,如果是编程来使用,则这样用就够了。不过,SageMath和Python合起来还可以当做“计算器”来使用。这个时候,就最好有一个图形界面,并且能够把结果也在必要的时候做图形呈现,最好还能够分享。

Jupyter就是这样一个界面环境。

有两个方法可以通过Jupyter来集成使用SageMath和Python。

  1. 第一,安装完成SageMath之后,在SageMath界面下打开Jupyter。例如,$./SageMath/sage -n jupyter。前面的SageMath是SageMath的安装目录。SageMath自带了Jupyter,因此,不用重新安装Jupyter。
  2. 第二,单独安装Jupyter和SageMath。在Jupyter界面下打开SageMath。为了能够让Jupyter知道SageMath在哪里,我们需要安装一个Jupyter拓展包,通过下面的命令:$sudo jupyter kernelspec install SageMath/local/share/jupyter/kernels/sagemath。其中的SageMath是SageMath的安装目录。之后,就可以通过运行jupyter notebook来实现通过Jupyter来使用SageMath和Python了。
  3. 如果你还想在任意的目录下都能够通过运行jupyter notebook来实现通过Jupyter来使用SageMath和Python,则还需要修改路径设定,让系统知道SageMath的sage文件和bin文件存在哪里。例如,通过在.bashrc中增加一行:export SAGE_ROOT=SageMath。其中SageMath是SageMath的安装目录,例如/opt/SageMath。以及添加路径,例如 export Path=SageMath:$PATH 来实现。

    注意,这是linux系统,Python是默认系统性安装的。如果其他系统,可能还需要在Jupyter下配置Python。

    安装一个可以在网上完成这个计算——通过Jupyter来集成使用SageMath和Python——的服务器。甚至可以考虑建一个包含机器学习功能的服务器,例如通过anaconda(可以连接上TensorFlow或者其他机器学习包)。如果使用anaconda则可以采用清华anaconda软件仓库

    如果希望其他用户也能够使用这个带了SageMath内核的jupyter notebook,则还需要安装JupyterHub。

learnm云主机

使用这个云主机需要先通过浏览器登录Juniper VPN来把本地机器加入VPN网络。然后,在加入VPN网络之后,才能使用SSH登录到云主机。

我尝试在Linux下设置如何加入Juniper VPN没有成功。目前需要在Win7(Win10也不行,可能是32位-64位的问题)下使用。在Windows下用SSH是一个很大的问题。目前我安装了cygwin来当做windows下的Linux系统来用。在安装cygwin的时候,注意需要选择额外的openSSH包,否则系统默认不安装SSH。

***********************************************

云主机信息:

局域网IP:172.31.11.30
操作系统类型:CentOS 6.0 64bit
操作系统用户名:root
操作系统密码:***********

虚拟机的配置信息如下:
CPU:单核,2.533GHz/核
内存:4GB
存储:200GB

VPN账号:

地址:https://124.127.245.35

用户名:beishida_web

密码:**********

***********************************************
看看这个主机是否能够拿来运行game.systemsci.org, git.systemsci.org,Cmap.systemsci.org。还需要找一个可以运行cloud.systemsci.org的机器。

wordpress迁移

网站上有各种工具实现wordpress的自动迁移。但是,对于多用户博客群,这些工具都不是很好用。其实,手动迁移很简单的。

第一步,备份源wordpress站点的数据库文件。如果是mysql,只要运行:mysqldump –add-drop-table -h mysql_hostserver -u mysql_username -p mysql_databasename 。其中变量名mysql_hostserver等,你必须知道。这个要有安装时候的信息。或者进入mysql数据库里面查数据库(show databases)和相应的用户。

第二步,打包源wordpress站点的wordpress目录下的文件。

第三步,在目标wordpress网站上建立同样名字和同样用户还有同样密码的数据库。并且,在建立以后,把第一步得到的文件例如 wordpress.old.sql重新引入到mysql里面,通过类似这样的命令:mysql -h mysqlhostserver -u mysqlusername -p databasename < wordpress.old.sql 。同样这里的变量名最好不要变跟源一样。否则,需要手工在mysql下面修改。

第四步,解压缩打包的wordpress文件。需要的话,调整wp-config.php和.htaccess文件(.htaccess文件需要sudo a2enmod rewrite来运行rewrite模块)。接着重启apache就好了。

 

git服务器上已经建立的项目列表和本地目录,ssh端口修改

由于学校控制22端口,所以修改了ssh端口为7712(因此,直接访问机器的命令行需要改为:ssh git.systemsci.org -p 7712)。ssh服务器端修改端口号的办法是:修改/etc/ssh/sshd_config文件,在Port 22下面,添加Port 7712(注意不要去掉22端口,万一去掉7712端口有没有配置好,那你就登录不了这个机器了)。同时在/etc/ssh/ssh_config里面同样的地方也添加Port 7712。

在客户端可以在~/.ssh/下新建一个config文件(如果你是图形界面,则直接修改ssh图形客户端配置就可以),文件内容为:

Host YOUR_HOST
User YOUR_USER_NAME
Port YOUR_NEW_PORT

这一步对于git找到相应的端口非常重要。

这个文档的以下部分记录git服务器,git.systemsci.org上面管理的项目。关于git安装和使用见下文。
如果你已经通过~/.ssh/下新建一个config文件来识别端口号,则下面的命令中的端口号都可以去掉。如果你没有做这一步,则下面的命令中都加上端口号。当然如果是默认22的配置,则不用添加端口号。

  1. IO文档
    1. 服务器端在/home/git/IO.git
    2. 本地保存在Research/Input-Output/下面,跟踪对象是所有的.tex文件。

详细安装过程和使用方法如下:

  1. 在服务器端安装git: sudo apt-get install git-core,并添加git用户(sudo adduser git,注意密码),普通用户不用做这一步
  2. 在服务器端建立一个项目:mkdir IO.git。在这里,整个git目录只用于存储项目。因此,所有的项目直接放在~/git/下面。如果项目还没有在上面的列表上,普通用户需要完成这一步
  3. 在项目目录下面,初始化项目目录结构:git init –bare。这时候指有目录结构,什么具体内容都还没有呢。
  4. 回到本地机器准备加入内容
    1. 生成和上传一个ssh公钥到服务器上(参考如下帖子,需要git用户密码,请跟我联系):

      1. ssh-keygen -t rsa
      2. cat ~/.ssh/id_rsa.pub | ssh git@git.systemsci.org "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
      #这部分完成的事情首先是在本地自己的机器上产生一个id_rsa.pub公钥,然后把这个公钥上传到远程服务器,并且重命名为authorized_keys.

      完成这两步之后试试是否能够免密码访问服务器了。
    2. 已经存在的IO项目目录:把这个目录变成存储项目内容的本地目录(git init )。然后把远程项目拉过来同步到本地目录(git remote add origin ssh://git@git.systemsci.org/home/git/IO.git, git pull origin master)。接着把本地目录的内容加入到需要同步的列表(git add., git commit -m “massage” -a),然后把本地目录的内容推送到远程(git push origin master)
    3. 或者如果还没有这个项目的话,到预期存储IO项目的上一级目录(运行完成下面的目录会产生一个名字叫做IO的子目录)。然后运行:git clone git@git.systemsci.org:/home/git/IO.git,就会把整个服务器上的这个项目的内容完整地复制下来。
    4. 在本机这个项目目录下面编辑文档,并且用git add, commit, push之类的命令同步到服务器上。也可以安装图形客户端。
  5. 注意:最好只把文本文件当作git管理的对象,否则,由于要检查和跟踪变化,git会非常慢