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会非常慢

文件和www服务器配置

需要运行www服务(systemsci.org——wordpress平台, learnm.org——汉字学习网站和wiki, bigphysics.org——研究小组静态网页, gndt.org, learningm.org, meaningfullearning.org, revdi.org, sciedu.org),云盘服务(owncloud.systemsci.org),概念地图服务(cmap.systemsci.org)和博弈实验服务(games.systemsci.org),版本控制服务(git.systemsci.org),配置一个服务器。

首先安装ubuntu server,安装和配置ssh server,Apache server(php, mysql),以及virtual hosts。每一个步骤的细节可以参考server world。一个简单的方法就是安装好ubuntu server之后选择自动安装openssh server, LAMP server以及PostgreSQL server。安装完成Apache Server之后,需要配置成功能够显示CGI, php和静态主页。

为了在本地服务器上先测试,需要通过域名而且是多个域名来访问本地服务器。这个可以通过安装自己的dns解析来完成,也可以通过修改服务器的hostname文件以及局域网测试访问的机器的hosts来实现。前者能够给每一个局域网机器一个稳定的名字,方便以后使用。甚至通过dhcp更换了局域网IP都不是问题。后者只能在服务器和这个测试登陆机器之间完成解析。但是,后者方便,这里就先用后者。dns或者dnsmasq的方法,以后有需求再实现。

为了给以后安装机器保留数据方便,单独建立www的分区,用来保存服务器数据。单独建立git、owncloud、game账号用来管理相应服务器。

然后安装和配置git server。其中,用户控制选择通过ssh来访问共同的账号git@git.systemsci.org来实现(例如 git remote add origin ssh://git@git.systemsci.org/~/oTreeApp.git)。git的用户目录直接用来存放所有的repositories(例如oTreeApp.git,Coherent.git等)。需要使用git的用户,请自行上传一个ssh公钥到服务器上(参考如下帖子,需要git用户密码,请跟我联系)。关于git使用,请自行学习(参考ProGit)。新建远程库也需要git密码,请跟我联系。建立远程库的方法建议采用先在服务器上建立一个文件夹(然后git init –bare),然后通过git clone来建立本地目录,接着修改本地文件的方式来实现。

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

  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用户密码,请跟我联系):ssh-keygen -t rsa,cat ~/.ssh/id_rsa.pub | ssh git@git.systemsci.org “mkdir -p ~/.ssh && cat >> ~/.ssh/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会非常慢

注意有的系统在把公钥上传到服务器以后仍然需要git@git.systemsci.org的账号,这个时候,请在local(你自己的机器上)运行一下ssh-add。

接着,安装和配置wordpress服务器。安装目录为/var/www/wordpress。

接着,安装和配置owncloud服务器。安装目录为 /var/www/owncloud。

接着,安装和配置oTree服务器。安装目录为 /var/www/owncloud。

安装和配置cmapserver。这个server不能运行在apache下面,只能用它自己带的服务器,由于80端口已经被其他网站使用,给它单独的端口8088。

最后,把各个网站内容放到相应的/var/www/“DomainName”下面。

顺便整理一下其他做为一个大物理学的研究者的工具箱里面应该有的工具:

  1. 把问题模型化数学化的能力(抽象的过程)
  2. 建立所思考的各种问题之间的联系的能力(系联性思考、概念地图)
  3. 阅读、思考、批判和总结整理文献的能力(批判性思考、系联性思考)
  4. 物理学数学经济学是什么,少量的基本概念,以及不太多的分析技术(例如平均场理论、动力学方程稳定性分析)
  5. 编程语言:C,Python
  6. 基本数值运算(积分、插值等):gsl
  7. 线性代数:lapack(ATLAS, IntelMKL, AMDCML),BLAS,Petsc和Slepc(并行),ARPACK
  8. Monte Carlo:随机数生成器,通常不要用语言自带的,使用专门的包,并行的时候要特别注意。
  9. FFT: FFTW,或者IntelMKL, AMDCML
  10. 网络分析:iGraph(C、R和Python有接口),NetworkX(R和Python有接口)
  11. 统计学:R
  12. 做图:Python,R,gnuplot,grace
  13. 写作:LaTeX,bibtex文献管理,LaTeX beamer报告以及poster
  14. 微分方程数值解:Runge-Kutta, XMDS2

ownCloud管理多个目录

我们自己的ownCloud服务器已经能够使用。一部分老师有同步多个目录的需求,而且不希望单独设立一个叫做owncloud的目录(浪费本地硬盘空间)。其实这些功能ownCloud都能实现。

下载并安装客户端。
然后,在客户端第一次启动之后,不要直接点下一步,注意,选择目标目录(默认是建立一个owncloud目录,我们不需要这个),然后在下面的别名位置上写上你给这个目录的名字,不要留着默认的owncloud。

接着,点增加目录,就可以把多个目录加进去了。

owncloud,Cmapserver文件存储的默认路径

owncloud的默认文件存储路径是 /var/www/owncloud/data

Cmapserver的默认文件存储路径是 /opt/Cmapserver/serverRootFolder

需要建立两个单独的分区(可以使LVM的逻辑卷,也可以是实际分区,推荐使用前者),来存储这两个文件库。

另外,修改配置owncloud文件允许4G以上大文件的上传。

安装计算用ubuntu的步骤

1、安装ubuntu桌面版或者服务器版。配置IP地址、机器名、域名等。配置sudo用户帐号。
2、安装计算机硬件驱动,有可能需要ubuntu additional driver,如果遇到broadcom的网卡,还需要特殊处理。通常ubuntu已经为各种硬件做好了准备。
3、调整软件源。在我这里mirror.neu.edu.cn不错,也可以在图形环境下自动选择最快的。
4、自动安装openssh server, chromium或者chrome, p7zip-full, latex (texlive手动安装,否则ctex不能使用), office, filezilla, gnuplot, valgrind, grace, r ($ sudo apt-get install filezilla gnuplot valgrind grace p7zip-full r-base)。必要的话,复制字体文件到~/.fonts/目录下。latex在手动安装之后,需要修改路径,例如export PATH=/usr/local/texlive/2018/bin/x86_64-linux:$PATH或者修改.bashrc文件,或者/etc/enviroment文件。
5、自动安装gcc, g++, gfortran, cmake, build essential ($ sudo apt-get install cmake build-essential gfortran)。
6、手动安装openmpi, mpich (mpiexec)
7、手动安装intel MKL(intel MKL安装脚本相当自动,不需要重新编译,只需要运行sudo ./install.sh
8、手动安装anaconda,以及在anaconda 下面安装igraph, NetworkX
9、手动安装fftw, lapack (lapack+atlas+blas), petsc, slepc, networksX, igraph, xmds2, gsl

手动安装mpich:1)下载和解压mpich。2)进入mpich的解压后目录,mkdir Build,进入Build,configure (../configure --prefix=/opt/mpich --enable-shared 2>&1 | tee c.txt),make(make 2<&1 | tee m.txt),install (sudo make install 2>&1 | tee mi.txt)。3)检验mpiexec是否正确运行。有可能需要加入 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib。

手动安装hydra:跳过,暂时不用。mpich已经默认提供了这个任务管理器。

手动安装openmpi:1)下载和解压openmpi。2)进入openmpi的解压后目录,mkdir Build,进入Build,configure (../configure --prefix=/opt/openmpi ),make (make -j 12 all ), install (sudo make install )。3)检验mpiexec是否正确运行(例如运行, /opt/openmpi/bin/mpiexec -n 3 hostname)。

手动安装MKL(Intel数学核):下载、解压、进入目录,运行sudo ./install.sh,按照提示设置安装路径。使用的时候,要注意编译过程的链接方式(lib,include),可以参考Intel® Math Kernel Library Link Line Advisor

手动安装fftw:1)下载和解压fftw。2)进入fftw的解压后目录,configure (./configure --enable-mpi --prefix=/opt/fftw --enable-shared ),make (make), install (sudo make install )。

手动安装gsl:下载,解压,进入目录,configure (./configure --prefix=/opt/gsl) (默认路径可能与系统安装的冲突)。make(make all), install (sudo make install)。

手动安装atlas+lapack: 1)下载和解压atlas,下载lapack。2)进入atlas的解压后目录,mkdir Biuld,进入Build,../configure -b 64 -D c -DPentiumCPS=3400 –prefix=/opt/atlas –with-netlib-lapack-tarfile=/home/…/lapack-3.5.0.tgz –shared。3) make build, make check,make ptcheck,make time,sudo make install

在安装atlas的时候,可能需要关掉CPU节能模式。这个可以采用修改grub的形式,或者修改/etc/init.d/cpufrequtils 文件。

手动安装anaconda:下载anaconda安装文件Anaconda3-5.3.1-Linux-x86_64.sh,运行安装文件./Anaconda3-5.3.1-Linux-x86_64.sh,考虑到底是系统层面安装还是用户层面安装。系统层面则,考虑安装到/opt/anaconda3,并且设定相应的PATH或者允许anaconda在.bashrc文件里面添加一行代码。安装anaconda之后,需要修改一下软件仓库,例如用清华的TUNA,通过运行如下命令行:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

主语conda虚拟环境最好安装在每一个用户自己的目录下面,尽管anaconda本身是系统层面的安装。如果需要共享虚拟环境可以考虑用分享环境设置文件的方式。尤其是当用具有sudo权限的用户建立虚拟环境的时候,目录的权限有的时候会是一个问题。例如虚拟环境是sudo命令下安装的,但是运行(activate)的时候没有带sudo,就会遇到路径权限的问题。因此,最好每一个用户自己建立自己的虚拟环境。

手动安装igraph:0) 安装igraph依赖的libxml包sudo apt-get install libxml2-dev
1)C-igraph,下载和解压igraph。进入igraph的解压后目录, configure(./configure --prefix=/opt/igraph), make(make), install (sudo make install), 然后需要添加/opt/igraph/lib到LD_LIBRARY_PATH:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/igraph/lib。为了让系统,例如通过运行pkg-config --libs --cflags igraph,来知道igraph函数库如何链接到其他程序,需要把igraph.pc加入到 PKG_CONFIG_PATH(例如通过在.bashrc里面增加一行export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/igraph/lib/pkgconfig
2)R-igraph,sudo R,然后在R内部运行install.packages(“igraph”)。
3)Python-igraph,交给pip来安装(pip install python-igraph,这个时候需要系统能够通过pkg-config找到igraph)或者手动安装:下载python-igraph,解压,进入目录,修改setup.py文件中igraph的路径(/opt/igraph/include, /opt/igraph/lib),python setup.py build,然后运行 sudo python setup.py install。

Python-igraph也可以单独安装在anaconda下面某一个虚拟环境中,例如igraphNetworkX:1)建立一个anaconda虚拟环境conda create -n igraphNetworkX;2)pip安装python-igraph(pip install python-igraph 3)在此之前,需要修改pip设置来用TUNA pip软件仓库(pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple)。

手动安装networkX:sudo pip install networkX或者在anaconda虚拟环境下安装networkX(source activate igraphNetworkX然后,pip install networkX)。

手动安装torque:下载,解压,进入目录,./configure, make, sudo make install (其中,可能需要安装libssl-dev包,自动安装这个包即可)。如果出现动态库的错误。需要建立一个/etc/ld.so.conf.d/torque.conf的文件,其内容为/usr/local/lib(torque库文件的位置),然后运行ldconfig。安装torque就完成了。下面是配置torque。

配置torque:(没搞定)

手动安装petsc:下载,解压,进入目录,设定参数 PETSC_ARCH(export PETSC_ARCH=real-mkl-debug),然后configure(./configure --with-blas-lapack-dir=/opt/intel/mkl/lib/intel64 --with-scalar-type=real --with-clanguage=c --with-fortran-kernels=1 --download-scalapack=scalapack.tgz --download-superlu=superlu_5.2.1.tar.gz --with-debugging=1 --with-fftw-dir=/opt/fftw --prefix=/opt/petsc/real-mkl-debug --with-mpi-dir=/opt/mpich
)。然后make(make all test或者按照configure结束以后的提示来做), 安装(sudo make install)。–with-debugging=1可以改成0,同时修改PETSC_ARCH=real-mkl-run和修改安装目录–prefix=/opt/petsc/real-mkl-run。类似的,把–with-scalar-type=real改成complex就可以安装用于复数矩阵的petsc。

手动安装slepc:下载,解压,进入目录,设定参数 export PETSC_DIR=/opt/petsc/complex-mkl-debug(petsc安装目录), unset PETSC_ARCH,然后configure(./configure --prefix=/opt/slepc/complex-mkl-debug,make (make all test或者按照configure结束以后的提示来做),安装(sudo make install)。注意,configure完成之后的每一步系统都会给出下一步的提示。随着版本的不同,上面的命令可能会失效,需要按照提示来操作。

手动安装petsc4py: export PETSC_DIR=/opt/petsc/complex-mkl-debug
export PETSC_ARCH=complex-mkl-debug
sudo pip install petsc4py

手动安装slepc4py: export SLEPC_DIR=/opt/slepc/complex-mkl-debug
export PETSC_DIR=/opt/petsc/complex-mkl-debug
export PETSC_ARCH=complex-mkl-debug
sudo pip install slepc4py

这两个软件包,建议由用户安装到用户目录(pip install --user petsc4py slpec4py)。例如jinshanw用户下的SciCalc虚拟环境中就安装了python-igraph, netowrkX, petsc4py, slepc4py,并且能够运行jupyter notebook来使用SageMath

手动安装sprng5:下载,解压,进入目录,./configure –prefix=/opt/sprng5 (默认路径可能与系统安装的冲突)。make all, sudo make install。sprng5的语言是C++。如果你需要在C语言中调用sprng5,后期需要用g++来link。