内网 Ubuntu 20.04 搭建 docusaurus 项目(或前端项目)的环境

背景

内网开发机是 win7,只能安装 node 14 以下,而 spug 的文档项目采用的是 Facebook 的 docusaurus,需要 node 14 以上才能构建、打包,所以决定借助另一台 ubuntu 20.04 的机器来对这个文档项目进行二次开发。

Tip:这里 docusaurus 指的是 spug 开源项目的官方文档项目。前些天发现该官网仓库已找不到了。

远程工具

借助远程工具,即通过 win7 来远程控制 ubuntu,在 ubuntu 上进行开发。

思路(mobaxterm + tigerVnc)

客户端使用 mobaxterm,服务端使用 tigerVnc。

Tip: VNC(Virtual Network Console)是虚拟网络控制台的缩写。它是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。

具体做法如下,首先在 ubuntu 中配置 tigerVnc,并启动服务,然后在 win7 中 通过 mobaxterm 连接 vnc:

增加用户 vncuser1

pengjiali@pengjiali:~$ sudo adduser vncuser1
正在添加用户"vncuser1"...
正在添加新组"vncuser1" (1003)...
正在添加新用户"vncuser1" (1003) 到组"vncuser1"...
创建主目录"/home/vncuser1"...
正在从"/etc/skel"复制文件...
新的 密码:
重新输入新的 密码:
passwd:已成功更新密码
正在改变 vncuser1 的用户信息
请输入新值,或直接敲回车键以使用默认值
全名 []:
房间号码 []:
工作电话 []:
家庭电话 []:
其它 []: 这些信息是否正确? [Y/n] Y
pengjiali@pengjiali:~$

切换用户:

pengjiali@pengjiali:~$ su - vncuser1
密码:
vncuser1@pengjiali:~$

:以下操作都是在 vncuser1 下进行

通过 apt 命令搜索 tigervnc 软件。

Tip:倘若不能搜索到 tigervnc 相关软件包,请自行处理。

vncuser1@pengjiali:~$ apt search tigervnc
正在排序... 完成
全文搜索... 完成
tigervnc-common/focal,focal 1.10.1+dfsg-3 amd64
Virtual network computing; Common software needed by servers tigervnc-scraping-server/focal,focal 1.10.1+dfsg-3 amd64
Virtual network computing server performing X screen scraping tigervnc-standalone-server/focal,focal 1.10.1+dfsg-3 amd64
Standalone virtual network computing server tigervnc-viewer/focal,focal 1.10.1+dfsg-3 amd64
Virtual network computing client for X tigervnc-xorg-extension/focal,focal 1.10.1+dfsg-3 amd64
Virtual network computing X server extension

这里有五个软件包,笔者只安装第三个(tigervnc-standalone-server):

vncuser1@pengjiali:~$ sudo apt install tigervnc-standalone-server
[sudo] vncuser1 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
libfile-readbackwards-perl tigervnc-common
建议安装:
xfonts-100dpi | xfonts-75dpi
下列【新】软件包将被安装:
libfile-readbackwards-perl tigervnc-common tigervnc-standalone-server
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 134 个软件包未被升级。
需要下载 1,097 kB 的归档。
解压缩后会消耗 3,088 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 libfile-readbackwards-perl all 1.05-2 [10.8 kB]
获取:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 tigervnc-common amd64 1.10.1+dfsg-3 [69.0 kB]
获取:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 tigervnc-standalone-server amd64 1.10.1+dfsg-3 [1,017 kB]
已下载 1,097 kB,耗时 1秒 (943 kB/s)
正在选中未选择的软件包 libfile-readbackwards-perl。
(正在读取数据库 ... 系统当前共安装有 333379 个文件和目录。)
准备解压 .../libfile-readbackwards-perl_1.05-2_all.deb ...
正在解压 libfile-readbackwards-perl (1.05-2) ...
正在选中未选择的软件包 tigervnc-common。
准备解压 .../tigervnc-common_1.10.1+dfsg-3_amd64.deb ...
正在解压 tigervnc-common (1.10.1+dfsg-3) ...
正在选中未选择的软件包 tigervnc-standalone-server。
准备解压 .../tigervnc-standalone-server_1.10.1+dfsg-3_amd64.deb ...
正在解压 tigervnc-standalone-server (1.10.1+dfsg-3) ...
正在设置 libfile-readbackwards-perl (1.05-2) ...
正在设置 tigervnc-common (1.10.1+dfsg-3) ...
update-alternatives: 使用 /usr/bin/tigervncconfig 来在自动模式中提供 /usr/bin/vncconfig (vncconfig)
update-alternatives: 使用 /usr/bin/tigervncpasswd 来在自动模式中提供 /usr/bin/vncpasswd (vncpasswd)
正在设置 tigervnc-standalone-server (1.10.1+dfsg-3) ...
update-alternatives: 使用 /usr/bin/tigervncserver 来在自动模式中提供 /usr/bin/vncserver (vncserver)
update-alternatives: 使用 /usr/bin/Xtigervnc 来在自动模式中提供 /usr/bin/Xvnc (Xvnc)
正在处理用于 man-db (2.9.1-1) 的触发器 ...

通过 vncpasswd 配置一下密码(后续 win7 通过 vnc 连接时需要使用此密码):

vncuser1@pengjiali:~$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

:笔者选择 n

启动 vnc 服务:

vncuser1@pengjiali:~$ vncserver
/usr/bin/xauth: file /home/vncuser1/.Xauthority does not exist New 'pengjiali:1 (vncuser1)' desktop at :1 on machine pengjiali Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/vncuser1/.vnc/pengjiali:1.log Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/vncuser1/.vnc/passwd :1 to connect to the VNC server.

查看 VNC 服务器 session:

vncuser1@pengjiali:~$ vncserver -list

TigerVNC server sessions:

X DISPLAY #     RFB PORT #      PROCESS ID
:1 5901 28871

现在有一个 vnc session,但只接受来自 localhost 的 VNC 连接。所以先关闭这个无用的 vnc 服务:

vncuser1@pengjiali:~$ vncserver -kill :1
// 关闭所有
// vncuser1@pengjiali:~$ vncserver -kill :*
Killing Xtigervnc process ID 28871... success!

再次查看,发现服务已关闭:

vncuser1@pengjiali:~$ vncserver -list
TigerVNC server sessions: X DISPLAY # RFB PORT # PROCESS ID

启动一个可用的 vnc 服务,即关闭 localhost 访问限制:

vncuser1@pengjiali:~$ vncserver -localhost no

New 'pengjiali:1 (vncuser1)' desktop at :1 on machine pengjiali

Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/vncuser1/.vnc/pengjiali:1.log Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/vncuser1/.vnc/passwd pengjiali:1 to connect to the VNC server.

Tip: 以某个端口启动 vncserver -localhost no :5,vnc连接端口则为 5905(5900+5

vncuser1@pengjiali:~$ vncserver -list

TigerVNC server sessions:

X DISPLAY #     RFB PORT #      PROCESS ID
:1 5901 30645

在 win7 中通过 mobaXterm 连接 ubuntu。

点击”session“,在弹框中切换到 VNC,然后输入 Ubuntu 的 ip,端口输入 5901,点击”OK“,顺利的话就进入了 ubuntu 的界面系统。

进入桌面退出,如图所示:

请看,用户名现在就显示 vncuser1。我们之前的操作就是在这个用户下进行的。

:1. 现在有个问题,进入桌面注销后,输入错的密码会提示密码错误,但输入对的密码却也不能再次进入桌面,而且没任何提示。笔者目前的解决办法是:设置从不息屏;2. 帮同事安装,通过 mobaXterm 链接 vnc,进入桌面后黑屏,无法使用

不在sudoers文件中,此事将被报告

vncuser1 用户下安装 tigervnc 报错:不在sudoers文件中,此事将被报告

vncuser1@pengjiali:~$ sudo apt install tigervnc-standalone-server
[sudo] vncuser1 的密码:
vncuser1 不在 sudoers 文件中。此事将被报告。

解决如下:

切换 root 用户:

vncuser1@pengjiali:~$ su
密码:

查看 /etc/sudoers 文件权限,如果只读权限,修改为可写权限

root@pengjiali:/home/vncuser1# ls -l /etc/sudoers
-r--r----- 1 root root 755 2月 3 2020 /etc/sudoers
root@pengjiali:/home/vncuser1# chmod u+w /etc/sudoers
root@pengjiali:/home/vncuser1# ls -l /etc/sudoers
-rw-r----- 1 root root 755 2月 3 2020 /etc/sudoers

添加要提升权限的用户。在文件中找到root ALL=(ALL:ALL) ALL,添加用户信息:

root@pengjiali:/home/vncuser1# vim /etc/sudoers
root    ALL=(ALL:ALL) ALL
// 新增用户
vncuser1 ALL=(ALL:ALL) ALL

保存退出。并恢复 /etc/sudoers 的访问权限为 440。

root@pengjiali:/home/vncuser1# chmod 440 /etc/sudoers

再次切换到 vncuser 重新安装即可。

NFS

远程控制 ubuntu 开发,体验不好,比较卡,决定使用 NFS。

Tip:网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

思路

将项目放在 win7 中,通过 nfs 共享给 utuntu,在 win7 这边开发,然后在 ubuntu 上访问该项目并编译。

步骤如下:

win7 安装 nfs 服务器。笔者使用 hanewin-nfs-server

Tip:内网有此软件,笔者请自行下载安装,安装成功后,界面如下:

安装完成,对输出进行配置,即点击”Edit exports file“:

输入如下信息,编辑完成后,点击【Restart Server】按钮重启 nfs 服务。

// 将 spug_docs 共享给 192.168.20.112~192.168.20.253 的机器,暴露出去的名字是 nfs(名字随便起)
d:\spug\spug_docs -name:nfs -range 192.168.20.112 192.168.20.253 -public

Tip:spug_docs 是 笔者在 win7 中的项目,需要通过 ubuntu 编译打包。:nfs 冒号后是名字,ubuntu 中会使用到。ip 范围自己定义,ubuntu 机器的 ip 得在此范围内。

:关闭 win7 防火墙。否则 ubuntu 连不上

接着在 ubuntu 中访问 spug_docs:

sudo mount -t nfs 192.168.1.115:nfs /home/vncuser1/tmp/nfsdir -o nolock

192.168.1.115 是 win7 的 ip,:nfs 与 win7 中配置的命名得保持一致,nfsdir 是一个空目录,用于挂载。

挂载成功后,进入 nfsdir 就应该能看到 psug_docs 项目的文件。

Tip:卸载此挂载点可使用 umount /home/vncuser1/tmp/nfsdir

nfs 的缺陷

现在可以在 win7 中修改 spug_docs 项目,然后在 ubuntu 中编译,发现如下两个问题:

中文文件导致编译失败

在 ubuntu 中运行 npm run start 报错。

发现是中文引起的。某文件夹中两个中文文件(xxx主机管理.xx)在 ubuntu 中没有,将文件改为英文,例如 xxxzhujiguanli.xx,引用处也一起改掉,再次运行即可。

未触发自动编译

通常,编辑文件,node 工程会自动编译,刷新浏览器也能看到变更,很方便。

现在在 win7 中修改项目,ubuntu 中通过 cat 也能发现文件已变更,但浏览器却看不到效果,如果直接在 ubuntu 中修改文件,浏览器是可以看到变更的。

:倘若将 spug_docs 直接放到 ubuntu 中运行,不使用 nfs 的方式,就没有这两个问题。

其他

ubantu 安装 node

内网通过 apt install nodejs,发现 node 版本过低,只有 10。

接着通过 node 官网,找到”基于 Debian 和 Ubuntu 的 Linux 发行版“栏目,进入Node.js 二进制发行版,运行如下两行命令安装 node 18:

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

sudo apt-get install -y nodejs

但笔者的 ubuntu 在内网,直接在外网运行如下命名,首先查看是否有 nodejs 相关包,然后下载:

$ apt-cache search nodejs

$ sudo apt-get download nodejs

Tip:公司外网的机器可能已经配置好源,笔者没管,直接使用。

将下载的 node 包导入内网,运行如下命令安装即可:

$sudo dpkg -i nodejs_18.3.0-deb-1nodesource1_amd64.deb

zip

win7 传项目给 ubuntu,可以在 win7 中使用 zip 压缩,然后在 ubuntu 使用 tar 解压

内网 Ubuntu 20.04 搭建 docusaurus 项目(或前端项目)的环境(mobaxterm、tigervnc、nfs、node)的更多相关文章

  1. 【netcore基础】ubuntu 16.04 搭建.net core 2.1 linux 运行环境 nginx反向代理 supervisor配置自启动

    今天来整理下 netcore 在 linux(ubuntu) 上的运行环境搭建 对应版本 ubuntu 16.04 .net core 2.1 nginx version: nginx/1.10.3 ...

  2. Ubuntu 20.04 搭建 LAMP 环境

    LAMP环境即Linux下配置Apache.Mysql.Php,话不多说 GO ! 0.下载之前先更新一波: 更新源 sudo apt-get update 更新软件 sudo apt-get upg ...

  3. ubuntu 18.04 搭建flask服务器(大合集,个人实操)

    ubuntu 18.04 搭建flask服务器(大合集) Ubuntu python flask 服务器 本次使用的Ubuntu版本为:Ubuntu 18.04.5 LTS (GNU/Linux 4. ...

  4. Ubuntu 20.04 Docker 安装并配置

    前言 Docker 的使用能极大地方便我们的开发,减少环境搭建,依赖安装等繁琐且容易出错的问题. 安装 Docker Ubuntu 20.04 官方 apt 源中就有 Docker,我们可以直接通过 ...

  5. Ubuntu 12.04 搭建 Eclipse Android 开发环境(转)

    Ubuntu 12.04 搭建 Eclipse Android 开发环境 http://blog.sina.com.cn/s/blog_93dc666c0101b39p.html (2012-09-0 ...

  6. win10 + Ubuntu 20.04 LTS 双系统 引导界面美化

    版权声明:本文为CSDN博主「ZChen1996」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/ZChen1 ...

  7. Windows10 + Ubuntu 20.04 LTS 双系统安装 (UEFI + GPT)(图文,多图预警)

    版权声明:本文为CSDN博主「ZChen1996」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/ZChen1 ...

  8. Ubuntu 20.04上通过Wine 安装微信

    没有想过会在一个手机软件上花这么多心思,好在今天总算安装成功,觉得可以记录下这个过程,方便他人方便自己. 首先介绍下我使用过的其他方法,希望可以节省大家一些时间: Rambox Pro:因为原理是网页 ...

  9. OpenCV4.4.0 安装测试 Installation & Examination (Ubuntu18.04, Ubuntu 20.04)

    OpenCV4.4.0 安装测试 Installation & Examination (Ubuntu18.04, Ubuntu 20.04) 单纯简单的 OpenCV 安装配置方法,在这个地 ...

随机推荐

  1. 将子分支代码merge到主分支master分支

    1.首先切换到子分支: git checkout develop2.使用git pull 把分支代码pull下来: git pull3.切换到主分支: git checkout master4.把分支 ...

  2. Linux_文件传输工具_FileZilla

    什么是FileZilla? FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能.可控性.有条理的界面和管理多站点的简化方式使得Filezilla客户端版 ...

  3. c++对c的拓展_内联函数

    目的:保持处理宏的高效及安全性 解决的问题:1.c中预处理宏有些难以发现的问题 2.c++ 中预处理不能访问类成员,不能作用类的成员函数 作用:无函数调用时开销,又可像普通函数般进行参数.返回值类型安 ...

  4. 学习Java必用的9个网站,最后一个最好用!

    Java语言已经成为IT编程界中一种持久的语言,从主要开放源码网站中统计的每月编程语言排名来看,Java一直位居榜首.因此,我们的程序员不能放弃学习Java呀!今日小编为大家整理了几个关于Java学习 ...

  5. Spring Boot-@EnableWebMvc注解

    作用:当配置类中添加了该注解了之后,就表示某个模块的自动配置就都失效了,全部都要自己配置 例如下面这个MVC模块的配置类 /** * @author:抱着鱼睡觉的喵喵 * @date:2020/12/ ...

  6. LibreOffice(开源免费办公软件)

    LibreOffice(开源免费办公软件) 官方地址 中文网站:https://zh-cn.libreoffice.org/ 下载地址: https://zh-cn.libreoffice.org/d ...

  7. 算法题——Cantor表

    题目介绍 描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1, 1/2 , 1/3, 1/4, 1/5, - 2/1, 2/ ...

  8. JavaWeb项目端口占用问题

    今天使用springboot编写项目的时候安装了一个插件,重启了idea,但是项目忘记终止连接了,再打开idea启动项目发现端口被占用 控制台输出: ************************* ...

  9. VisualStudio安装步骤

    1.下载vs2017,点击安装 2.选择asp.net选项进行安装,如果需要其他的功能,可以选上 3.更改安装路径,尽量把文件安装在c盘以外的盘上,因为c盘是系统盘,安装的东西越多电脑会越卡.注意:不 ...

  10. K8S+Jenkins自动化构建微服务项目(后续)

    因为之前写过基于K8S部署jenkins master/slave平台,在这个的基础上构建微服务到K8S集群中 Jenkins-slave构建微服务项目到K8S集群 1.微服务项目上传到git仓库 这 ...