在此以Ubuntu64位系统为例,VSCode源码的编译需要安装很多软件,如下:
首先在合适的位置打开终端,例如:
/home/用户名/vscode
(本人在“”/home/用户名“路径下新创建了一个名叫vscode的文件夹,准备把编译所需都放置在此。)
打开终端如下:
输入命令“sudo su”,并输入用户密码(安装系统时会设置)进入根用户模式。
这是为了避免不必要的错误。
接下来打开github官网进入编译vscode源码教程,网址如下:官网教程
参考链接:Ubuntu下git安装与使用
在教程中并未规定git的版本,因此下载最新版就行。
在打开的终端中输入以下命令:
sudo apt-get install git
git config --global user.name “用户名”
git config --global user.email “你的邮箱地址”
ssh-keygen -C ‘你的邮箱地址’ -t rsa
cd ~/.ssh
gedit id_rsa.pub
将会出现新的界面,将其中的内容都复制下来,访问网址:git,打开“设置”中的“SSH公钥”,标题栏随意输入,公钥栏将复制的内容粘贴进去。确认后退出。(如果没有这个网址的账号,可以注册一个,如果不想注册,那就到上面的命令就行,本人并未尝试会不会报错,但问题不大)。
继续输入命令:
ssh -T git@git.oschina.net
测试链接是否通畅。
到此为止,“Ubuntu下git安装与使用”网址链接中的后续教程不必进行。
在本人编译的时间下,git官网教程对nodejs要求如下:
翻译一下就是需要node.js软件64位的14.x版本,在我们编译时,最好用14下的最新版,在终端输入命令:
sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
执行完毕后输入命令“node -v”和命令“npm -v”进行验证,出现对应的版本号则正确。
安装好nodejs后,npm没有问题,输入命令:
npm install -g yarn
验证“yarn -v”,出现版本号则正确
按照官网教程,查看node-gyp自述文档获取当前支持的python版本,因此进入自述文档查看(官网自带链接)
往下拉,会看到
也即是,需要安装node-gyp,Python支持3.7、3.8、3.9和3.10版本。
回到终端,输入命令:
npm install -g node-gyp
验证“node-gyp -v”出现版本号则正确
在此,本人准备安装python3.9.4,各位随意。
参考链接:ubuntu安装python
输入命令:
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev
wget https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz
tar -xvJf Python-3.9.4.tar.xz
cd Python-3.9.4/
sudo apt-get install python-dev
sudo apt-get install libffi-dev
sudo apt-get install libssl-dev
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
./configure prefix=/usr/local/python3
make && make install
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/python3/bin/python3 /usr/bin/python
验证“python -v”出现的一大片信息中看到你安装的版本号就行,在“>>>”后面输入“quit()”并回车即可退出。
接下来安装和升级pip,输入命令
sudo apt-get install python3-pip
pip3 install --upgrade pip
上面链接有报错解决方法。
回到官网教程,
也就是说,linux系统分为debian和red hat-based两种,ubuntu属于debian,因此执行命令
sudo apt-get install build-essential g++ libx11-dev libxkbfile-dev libsecret-1-dev python-is-python3
如果能执行成功最好,如果提示说
报错为:E: Unable to locate package python-is-python3
出现这个问题,则不使用官网上的这条命令,改为:
sudo apt-get install build-essential
sudo apt-get install g++
sudo apt-get install libx11-dev
sudo apt-get install libxkbfile-dev
sudo apt-get install libsecret-1-dev
sudo apt-get install fakeroot rpm
注意,不安装python-is-python3
6.源码
打开网址:vscode源码下载
点击绿色按钮“Code”,在出现的下拉菜单中选择最后一个“Download ZIP”
将下载好的vscode源码压缩包解压,放在合适的路径下(最好不要放在 /home/用户名 下),本人放在之前创建的vscode文件夹路径下。
在终端执行"cd ./vscode-main"进入解压后的文件夹,执行命令:
yarn
Q1:如果出现“Failed to connect to github.com port 443: Connection refused”报错,可以多次执行yarn命令尝试,如果实在不行,还能删除vscode-main源码中的node-modules文件夹,重新执行yarn命名尝试,之后还是不行,百度吧。
Q2:如果出现以下报错:
这是git的问题,可以尝试多次重新yarn ,也可以看上面git部分的安装步骤进行补全。
如果还是报错,不管也行。
有时候可以尝试把yarn命令改成使用“yarn install”命令。
终端输入命令“yarn watch”
Q1:如果出现报错ERROR: “watch-extensions” exited with 137.error Command failed with exit code 1.
多尝试几次,如果还报错,把yarn watch命令改为“yarn run watch”命令。
Q2:如果出现报错Killed. error Command failed with exit code 137.
这是因为swap内存小了,执行命令:
mkdir /swap
cd /swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=2000000
sudo mkswap -f swapfile
sudo swapon swapfile
增加玩swap空间,重新执行yarn run watch。
出现以上执行信息就是可以了。
在终端执行命令“./scripts/code.sh”,出现下图所示
这样就可以了,提示说找不到code-oss不用管,直接打包
yarn run gulp – vscode-platform
platform可以为如下(根据不同的平台选择不同的类型):
win32-ia32 | win32-x64 | darwin | linux-ia32 | linux-x64 | linux-arm
在此,本人将之打包为linux64的包,所以执行命令
yarn run gulp --linux-x64
最终在vscode-main源码文件夹的同级目录下出现“VSCode-linux-x64”文件夹,这个就是打好的包。
如果要运行,则在这个包所在的路径下打开终端,执行命令:
sudo chmod 777 -R /home/cb/vscode/VSCode-linux-x64
发现这个文件夹图标上没有锁了就成功。
退出root模式,打开文件夹,把其中的“code-oss”文件拖到终端,回车执行,将出现VSCode界面。
至此,所有步骤完成。
其他报错:
参考链接:lock报错
注意,上面链接中的方法中有一条命令为
sudo kill -9 PID
此处“PID”为返回项中PID下方的数字,如:
应写 sudo kill -9 54110