前提:最好使用root用户可以排除一些不必要的错误。

一、 准备环境

Node.js(>= 8.12.0, < 9.0.0)

Python2.7

Yarn(可以通过npm install yarn -g 命令安装,前提必须安装好nodejs)

关于Node.js安装

curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt-get install nodejs
nodejs -v #显示对应的版本号表示成功
npm -v #显示对应的版本号表示成功

为了使一些npm包能够工作(例如那些需要从源代码编译代码的包),您需要安装build-essential包:

sudo apt-get install build-essential

关于Python(Ubuntu16.04默认自带Python.27,通过如下命令软链接即可)

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2. /usr/bin/python
python -V #显示2.7的版本号表示成功

关于Yarn

执行npm install yarn -g (全局安装yarn)

执行下面安装linux上所需环境依赖:

sudo apt-get install libx11-dev libxkbfile-dev

sudo apt-get install libsecret--dev

sudo apt-get install fakeroot rpm

二、 编译运行

(1)    使用git克隆项

git clone https://github.com/Microsoft/vscode.git

(2)    进入项目

cd vscode

(3)    执行yarn下载所需依赖

yarn

(4)    启动监听

yarn watch

(5)    启动脚本

./script/code.sh或者bash code.sh 

控制台正常结果如下:

三、 打包

yarn run gulp -- vscode-platform
platform可以为如下(根据不同的平台选择不同的类型):
win32-ia32 | win32-x64 | darwin | linux-ia32 | linux-x64 | linux-arm

以linux为例(打包成功,命令为yarn run gulp -- vscode-linux-x64)显示如下:

四、 可能错误

错误信息一:

.build/electron/code-oss: error while loading shared libraries: libgtk-3.so.0: cannot open shared object file: No such file or directory

解决办法:

sudo apt-get install build-essential

sudo apt-get install libgtk-3-dev

错误信息二:

.build/electron/code-oss: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory

解决办法:

sudo apt-get install libxss1

错误信息三:

.build/electron/code-oss: error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory

解决办法:

sudo apt-get install libasound2

错误信息四:

以打包exe为例,执行yarn run gulp -- vscode-win32-x64(在linux打包exe)

会出现上述问题,解决办法是多次执行yarn run gulp -- vscode-win32-x64 即可解决

打包成功的标志如下:

Linux上VsCode编译打包运行的更多相关文章

  1. 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0

    使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0 网上的 MapReduce WordCount 教程对于如何编译 WordCount.java 几乎是一笔带过… 而有写到的 ...

  2. Linux上安装编译工具链

    在Linux上安装编译工具链,安装它会依赖dpkg-dev,g++,libc6-dev,make等,所以安装之后这些依赖的工具也都会被安装.ubuntu软件库中这么描述 Informational l ...

  3. Tesseract-OCR4.0版本在VS2015上的编译与运行(转)

    最近刚开始接触识别库引擎方面的知识,由于项目中需要使用光学识别处理模块,在老师与朋友的推荐下,我开始接触tesseract光学识别库,在最开始从GitHub上下载的源代码进行编译的时候,出现了许多意想 ...

  4. linux上的编译安装

    计算机运行的程序都是二进制的代码,那么我们所用的编程语言都是自然语言中的字符,那么就需要有一种机制来将这些转化成二进制代码,那么根据转化机制不一样,编程语言(软件 产生的源头)分两大类 解释型 编译型 ...

  5. 基于QEMU的ARM Cortex-A9开发板Vexpress-ca9的Linux内核的编译和运行

    宿主机:Ubuntu16.04 x64(Linux内核4.4.0) 交叉编译工具链:gcc-arm-linux-gnueabiarm-linux-gcc:4.4.3QEMU:2.5.0Linux ke ...

  6. Linux上成功编译CoreCLR源代码

    >>Build日期:2015-2-5下午(编译失败). 开始Linux发行版用的是CentOS 6.5,操作步骤: 1)配置git: git config --global http.ss ...

  7. 《TCP/IP高效编程:改善网络程序的44个技巧》源码在Linux上的编译

    为了先完整编译通过,需要以下几个步骤: 1.进入linux子目录,执行 make.(此步骤为打补丁.) 2.返回上一级目录,打开文件 simplec.c,添加头文件 #include <stdi ...

  8. qtav----ffmeg在ubuntu和win10上的编译和运行

    最近在windows上和ubuntu上都安装了qtav并且通过了编译测试,实测播放中英文的视频文件功能正常,有图像有声音. 大致情况是,操作系统ubuntu: wkr@sea-X550JK:~$ ca ...

  9. linux上jar包的运行

    指定目录: #!/bin/bash source /etc/profile log() { echo `date +[%Y-%m-%d" "%H:%M:%S]` $1 } log ...

随机推荐

  1. Spring Boot 1.5.* 升级 2.1 - 完善中

    Spring Boot 原版本 1.5.12.RELEASE 新版本 2.1.0.RELEASE Spring Cloud 原版本 Edgware.SR3 新版本 Finchley.SR2 一.Act ...

  2. groovy使用范型的坑

    java的范型 Map<String, Integer> map = new HashMap<>(); map.put("a", 100); map.put ...

  3. CTO 之“六脉神剑”

    他深谙电商之道,从零打造 1 号店网站及供应链系统,以技术引领业务发展.他是欧电云创始人韩军,下面将由他分享完美 CTO “六脉神剑”的经验之谈. 首先,从对 CTO 的一个认识误区讲起. 不写代码的 ...

  4. Oracle总结二

    1 where子句 Where子句的作用:用where子句来指定查询条件 1.1 用法示例 select * from emp where deptno=10; select * from emp w ...

  5. Python 类的特殊成员介绍

    类的成员有两种形式 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能方法,私有成员命名时,前两个字符是下划线. class Foo: def __init__(self, name, age ...

  6. 转: Laravel 自定义公共函数的引入

    来源:Laravel 自定义公共函数的引入 背景习惯了 使用 ThinkPHP 框架,有一个公共方法类在代码编写上会快捷很多,所以有必要在此进行配置一番.测试框架:Laravel 5.5步骤指导1. ...

  7. Android系统启动流程 总结

    整体流程大致如下:   Android系统的启动,主要是指Android手机关机后,长按电源键后,Android手机开机的过程.从系统角度看,Android的启动程序可分为:   1.bootload ...

  8. Kotlin入门(10)七十二变的输入参数

    上一篇文章介绍了Kotlin对函数的基本用法,包括函数的定义.输入参数的声明.输出参数的声明等等,这些足够对付简单的场合了.当然了,倘若一门新语言仅仅满足于这些雕虫小技,那也实在没什么前途.既然Kot ...

  9. Python拆分DataFrame

    # 在Python中可以根据某列的具体内容来拆分数据,保存成多个DataFrame! # 代码如下: ycsj = pfsj[pfsj['备注'].isin(['1'])] # 拆分数据: 结果:

  10. 【redis专题(6)】命令语法介绍之hash

    可以把hash看做一个数组hset array key1 value2;,该数据类型特别适用于存储 增 hset key field value 作用: 把key中filed域的值设为value 注: ...