服务器以及C++科学计算安装记录

Author : zbzhen,        Modified : Tue Feb 21 18:52:25 2023

1. 服务器以及C++科学计算安装记录

1.1. 硬件

服务器在进门右边的第二层上

显示器接口在服务器后面, 建议用最右边那个

1.2. U盘启动盘

  1. 准备一个大于16G的空优盘

  2. 下载 ventoy, 并做好启动盘, 这一步非常简单

  3. 下载好系统镜像, 建议用镜像, 例如
    https://mirrors.aliyun.com/centos/7.9.2009/
    https://mirrors.aliyun.com/ubuntu-releases/20.04/

  4. .iso文件放到ventoy启动盘中

1.3. 安装系统

下面的是centos的安装记录
推荐用ubuntu系统, 不会出现额外报错, 会简单很多

  1. 插入ventoyU盘启动盘, 按电源开机

  2. 看屏幕信息, 当出现Ctrl + S信息时, 果断按Ctrl+S, 就可以进入Bios界面, 然后按方向键选择USB启动, 最后按F4, 可以进入到安装U盘安装界面, 之后就是跟着提示一步步点, 不会有任何困难. 不用怕装出问题, 无非就是丢失资料.

  3. 如果安装出现问题, 不能正常安装, 那么可能需要换U盘, 按电源键关机重启, 再整吧…

  4. 进入选择界面后,会有三个选项,第一个是安装,第二个是测试安装,建议先测试一遍,如果出could not insert floppy的错误提醒,可能是linux系统自带的nouvean与NVIDIA卡不兼容导致的. 解决办法为: 选择安装选项,光标停在第一个选项,按Tab进入grub编辑界面,在kernel所在行quiet前加上参数nomodeset,然后按Enter启动安装.

  5. 如果不出意外的话,这时候就会进入图形安装界面了,需要注意的是,centos7在安装时,网络配置链接是关闭的,需要手动打开,不然在安装成功后需要手动链接,这会非常麻烦. 具体设置为: 在Installation Information Summary界面(安装信息摘要)点击左下角Network and host进入配置界面,将右上角的off修改成on即可配置成功,注意在此界面右端有本机IP地址. 详细教程可以参考
    https://www.jianshu.com/p/78445bc6bd85

  6. 忘记root密码.

    • 开机时候有提示按方向键和E键的界面, 就按E键进,
    • 按方向键, 在linux16所在段的末尾, 设置语言的地方,如LANG=en_US.UTF-8,在后面添加命令
      rw single init=/bin/sh
    • 按下键盘的Ctrl+X执行, 进入单用户界面,
    • 输入passwd即可设置新的root密码了,
    • 为了让selinux自动初始化,输入:touch /.autorelabel,
    • 最后exec /sbin/init 退出单用户模式。
      参考
      https://blog.csdn.net/gnail_oug/article/details/94721777

1.4. 登陆服务器

1.4.1. 快速连接

  • 需要材料:
    服务器ip地址, 账号, 密码

  • 例如
    地址: 10.10.15.226
    账号: zbz
    密码: 1234

最快速连接的方法为:

打开终端, 输入
ssh zbz@10.10.15.226
回车, 输入密码再回车, 就能成功连上

1.4.2. 免密登陆

推荐本地用linux系统, 可以很方便处理

  • 本地终端输入ssh-keygen, 一路回车即可
    创建记录里, 会出现id_rsa.pub文件的全路径

  • ssh-copy-id -i ~/.ssh/id_rsa.pub zbz@10.10.15.226

  • 下次直接输入ssh zbz@10.10.15.226可以不用密码

如果是本地是win系统, 则先用某台linux系统整一次免密登陆, 然后执行下面操作

  • 本地终端输入ssh-keygen, 一路回车即可
    创建记录里, 会出现id_rsa.pub文件的全路径

  • 把本地的id_rsa.pub中的所有内容, 写入到服务器里的~/.ssh/authorized_keys文件中, 就可以实现免密登陆

win10系统一些操作提示:

  • 终端打开方式: 紧按Shift在桌面空白处点右键–>在此处打开 Powershell 窗口
  • 终端输入cat id_rsa.pub的全路径, 可直接得到id_rsa.pub文件中的全部内容

vim写入文件

  • vim ~/.ssh/authorized_keys
  • 按i开启编写模式
  • 粘贴id_rsa.pub里的内容
  • Esc推出编写模式
  • 组合快捷键Shift+z+z保存退出

1.4.3. 软件推荐

win10: MobaXterm

跨平台的:

  • electerm

  • windterm 非常推荐

    • 基于c开发, 资源耗费特别少, 可商用(Apache-2.0 license), 对比起来它的速度超快
    • 使用说明查看 https://kingtoolbox.github.io/
  • vscode + 插件 remote-ssh 或 SFTP 或 SSH Client等. 这种方案真的是方便,但是第一次使用配置起来略微麻烦. 非常推荐

    • 实践表明, 上面提供的三个插件都比较好用, 个人感觉最好用的方案是 vscode + 插件 SFTP, 因为可以本地也会有一个备份, 并且可以选择是否上传, SFTP相关配置文件为
      {
          "name": "随意给个名字",
          "host": "ip地址",
          "protocol": "sftp",
          "port": 22,
          "username": "用户名",
          "remotePath": "远程路径",
          "privateKeyPath": "~/.ssh/id_rsa",
          "uploadOnSave": true,
          "ignore": [
                  "**/.vscode/**",
                  "**/.git/**",
                  "**/.DS_Store",
                  "**/__pycache__",
                  "**/.env"
              ],
              "watcher": {
                  "files": "**/*",
                  "autoUpload": false,
                  "autoDelete": false
              }
      }
      

1.5. ubuntu命令

  • 查看ip, ifconfig

  • 正常情况下, 安装好了之后就可以远程连接, 如果不行的话, 需要安装SSH, ubuntu命令为
    安装sudo apt install ssh
    启动service ssh start
    重动service ssh restart

1.5.1. ubuntu C++科学计算包

  • 更新软件列表 sudo apt update

  • 更新软件sudo apt upgrade

  • 安装g++, sudo apt install g++

  • 安装gfortran, sudo apt install gfortran

  • 如果报错和sparselib相关, 需要重新下载sparselib++解压后,改文件名,输入make all没报错就OK了

  • 安装umfpack
    sudo apt-get install libsuitesparse-dev
    sudo apt-get install libsuitesparse-doc

  • 安装gls简单方法sudo apt-get install libgsl-dev, 如果报错: error: ‘size_t’ does not name a type, 则在
    /usr/local/include/gsl/gsl_sf_legendre.h文件的#include <gsl/gsl_sf_result.h>下面添加代码#include <cstddef>

1.6. centos命令

1.6.1. cento常用命令

  • 查看ip, ip add
  • 创建账号, adduser zbz
  • 设置密码, passwd zbz
  • 切换账号, su - zbz
  • 切换到root, su - root

1.6.2. cento安装C++科学计算包

  • 安装gcc, sudo yum install gcc
  • 安装g++, sudo yum install gcc-c++
  • 安装gfortran, sudo yum install gcc-gfortran
  • 安装gsl, sudo yum install gsl*
  • 安装umfpack, sudo yum install suitesparse

1.6.3. centos借助syncthing单向同步更新文档

服务器需要做的工作

  • root用户开启8384和22000端口,
    临时开启, 重启后失效
    sudo firewall-cmd --add-port=8384/tcp
    永久开启, 需要加--permanent参数
    sudo firewall-cmd --add-port=8384/tcp --permanent
    查看firewall-cmd --list-all
    关闭(重启才能生效)
    sudo firewall-cmd --remove-port=8384/tcp --permanent
    如果防火墙没开启的话可以用过
    systemctl start firewalld开启防火墙
    systemctl stop firewalld关闭防火墙

  • 官网下载syncthing
    https://github.com/syncthing/discosrv/releases/download/v1.8.0/syncthing-linux-amd64-v1.14.0

  • 解压
    tar -zxvf syncthing-linux-amd64-v1.8.0.tar.gz

  • 进入文件夹
    cd syncthing-linux-amd64-v1.8.0/

  • 启动
    ./syncthing

  • 关闭Ctrl+C

  • 修改配置文件 vi ~/.config/syncthing/config.xml127.0.0.1修改为0.0.0.0
    温馨提示: vi可以按i进入编写模式, 改写好了之后, 按Esc退出编写模式, 然后组合快捷键Shift+z+z保存并推出
    可用cat命令查看有没有修改成功,
    cat ~/.config/syncthing/config.xml

  • 后台运行
    nohup ./syncthing

  • 可以在本地电脑的浏览器输入10.10.15.226:8384, 然后做适当配置

本地电脑需要做的工作

从syncthing官网下载软件, 并且开启, 做好配置

具体可参考https://kz16.top/sync.html

1.6.4. centos搭建http服务

当然如果想更快速搭建http服务, 那就用python直接一行命令
python -m SimpleHTTPServer 8080
python3 -m http.server 8080

需要开启下8080端口, 然后浏览器中输入 http://10.10.15.226:8080 就可以看到页面内容

  • 后台运行
    nohup python3 -m http.server 8080

  • 关闭后台运行
    ps -ef | grep python查看pid进程号, 不想继续跑这个后台程序, 就输入kill pid进程号关闭, 例如
    kill 8987

1.6.5. centos安装python3

参考 https://www.cnblogs.com/blueberry-mint/p/13106790.html

  • 安装gcc

  • 安装其他依赖包
    sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

  • 下载
    wget https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz

  • 解压tar -zxvf Python-3.8.9.tgz

  • 创建python3程序目录
    mkdir /usr/local/python3

  • 执行配置文件,编译安装python3

    cd Python-3.8.9
    ./configure --prefix=/usr/local/python3
    make && make install
    
    

    一杯咖啡之后…

  • 建立软链接

    ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
    ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
    
    
  • 测试python3, pip3

  • 如果想再安装一个python3.9, 则前面的安装步骤是一样的, 最后一步, 是覆盖之前的软链接, 也就是
    ln –snf /usr/local/python3/bin/python3.9 /usr/bin/python3

  • 删除软链接, 比较保险的一种方式

    • cd /usr/bin/python3/
    • rm python3.9
    • 出现提示
      rm: remove symbolic link ‘python3’?
      输入y即可
    • rm python3.9但是python3.9后面一定不能有斜杠/, 如果加斜杠/就把真的目标文件删了
    • 如果软链接是文件夹的话就
      rm -rf XXX
      最后一定不要加斜杠/

1.6.6. anaconda的安装

事实上, 用上面的方法虽然能成功安装python3, 但是在安装第三方包总是报错, 为此, 后面直接用anaconda, 具体参考
https://kz16.top/na/python3/

  • 在这里找到对应版本https://www.anaconda.com/distribution/#linux

  • 下载, 例如
    wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh

  • 安装bash Anaconda3-2021.05-Linux-x86_64.sh
    默认会安装在当前目录,
    建议安装在/usr/anaconda3

  • 配置环境变量让所有用户生效,

    • vim /etc/profile

    • 按i进入编辑模式, 在最后一行粘贴

      PATH=$PATH:/usr/anaconda3/bin/
      export PATH
      
      
    • 再按ESc进入编辑模式, 最后组合快捷键Shift+Z+Z保存退出

    • 让环境变量生效source /etc/profile

1.7. jupyter配置

1.7.1. 配置

默认情况下,配置文件 ~/.jupyter/jupyter_notebook_config.py 并不存在,需要自行创建。使用下列命令生成配置文
jupyter notebook --generate-config
root 用户
jupyter notebook --generate-config --allow-root

1.7.2. 密码

jupyter notebook password 如果成功会提示 Wrote hashed password to/.jupyter/jupyter_notebook_config.json

1.7.3. 配置文件

jupyter_notebook_config.py 中找到下面的行,取消注释并修改。

c.NotebookApp.ip='0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 
c.NotebookApp.notebook_dir = 这里设置下文件夹的位置

1.7.4. 运行

以上设置完以后就可以在服务器上启动 jupyter notebook,jupyter notebook root 用户使用 jupyter notebook --allow-root 注意设置防火墙,例如上面给的是8888端口,就开8888, 这样就可以通过 域名地址:8888 进行访问 例如 http://myweb.com:8888/

参考: http://jupyter-notebook.readthedocs.io/en/latest/public_server.html#notebook-server-security_