• {{article.mytitle}}
  • 服务器以及C++科学计算安装记录

    Author : zbzhen,       Last modification time : 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_