安装和部署 cloud9 云端开发环境

简介

Cloud9 是亚马逊发布的一款基于云端的开发环境。

AWS Cloud9 是一种基于云的集成开发环境 (IDE),您只需要一个浏览器,即可编写、运行和调试代码。它包括一个代码编辑器、调试程序和终端。

Cloud9 预封装了适用于 JavaScript、Python、PHP 等常见编程语言的基本工具,您无需安装文件或配置开发计算机,即可开始新的项目。

Cloud9 IDE 基于云,因此您可以从办公室、家中或任何地方使用已连接 Internet 的计算机完成项目。

Cloud9 还可以为开发无服务器应用程序提供无缝体验,使您能够轻松定义资源、进行调试,并在本地和远程执行无服务器应用程序之间来回切换。

借助 Cloud9,您可以与团队快速共享开发环境,从而能够将程序配对,并实时跟踪彼此的输入。

上文摘自 AWS Cloud9 集成开发环境

亚马逊在 github 上开源了 Cloud9,因此我们可以在自己的环境中部署Cloud9。

准备

环境

实际上 Cloud9 只需要 nodejs 环境支持就行。

我用的是 docker 容器,镜像用的是 docker.io/ubuntu。

在 docker 上的部署过程应该和宿主机是一样的。

材料

我们需要 Cloud9 本身:Cloud9 Core

正如其名,这是 Cloud9 的核心程序。提供了 Cloud9 的核心功能(云端IDE)

安装

配置操作系统

由于我用的是一个裸的 ubuntu 镜像,所以需要先更新一下。

apt-get update -y
apt-get upgrade -y

我们至少需要先安装 git,以便进行接下来的部署工作。

apt-get install git -y

下载

首先我们从 https://github.com/c9/core 下载(clone)项目到本地

git clone https://github.com/c9/core.git cloud9

进入 cloud9 目录,有如下内容:

CODE_OF_CONDUCT.md  LICENSE-COMMERCIAL-USE  bin      docs          package.json  server.js  user-plugins
CONTRIBUTING.md NOTICE build local plugins settings
LICENSE README.md configs node_modules scripts test

其中 server.js 就是主程序(入口?),但是现在还不能运行,因为缺少必要环境。

安装部署

scripts/ 中有一个 install-sdk.sh,我们运行一下它,它会进行必要的软件安装和配置。

需要先安装一些工具:

apt-get install curl wget python2.7 gcc make -y

然后运行脚本(陷入漫长的等待)

./scripts/install-sdk.sh

最后会看到如下输出,表示安装完成。

Success!
run 'node server.js -p 8080 -a :' to launch Cloud9

运行

事实上,安装已经完成,按照提示启动就可以了。但是由于缺少 nodejs 环境,直接按照提示操作,会得到 “找不到 node 命令” 的错误。

其实,安装脚本已经安装好了运行环境。这个脚本运行完成后,会在用户根目录建立 .c9 文件夹,这里有启动 Cloud9 的必要环境(包括Nodejs)。

此时,还是在 cloud9 这个目录里,运行

~/.c9/node/bin/node server.js --help

如果安装没问题,就能正常运行且能看到帮助文档。

运行的话,基本命令如下:

~/.c9/node/bin/node server.js -l 0.0.0.0 -p 8080 -a username:password

在 8080 端口启动服务,并且增加 HTTP 基本认证。

看到如下回显,则表示启动成功。

Cloud9 is up and running

使用

直接在浏览器中通过你指定的 IP 和端口打开网页,就能看到 Cloud9 的主界面。基本就是一个一般的 IDE 界面。

你可以通过在界面上操作,对 IDE 进行详细的配置。

体验

使用体验相当好,我只尝试了 c/c++ 和 python,体验基本和无配置的Notepad++相当。也可能是我没配置好?

不足之处

这里的不足之处,主要是指本地部署的问题。毕竟

  1. 工作空间只能指定一个目录(不方便)
  2. 用户验证只提供HTTP基本认证(超级不安全)
  3. 在界面上打开的任何终端,都和运行 Cloud9 的用户拥有相同权限(不安全)
  4. 只提供了基于文件和目录的管理功能,没有基于项目或者解决方案的管理操作(不方便)
  5. 其他

事实上,只要直接使用亚马逊提供的服务,上述问题根本不存在……若是肯花点钱,体验可以更上一层楼……


原文发布于 https://blog.moonlightwatch.me/linux/2018/08/15/install-cloud9/

Cloud9 开发环境部署的更多相关文章

  1. 一个CentOS7的开发环境部署,包括防火墙|VPN|多IP多网关|HTTP代理服务器设置等

    http://www.lenggirl.com/code/centos7.html layout: post title: "一个CentOS7的开发环境部署,包括防火墙|VPN|HTTP代 ...

  2. 西秦的ACE-Python教程 一、Python本地开发环境部署

    西秦的ACE-Python教程 一.Python本地开发环境部署       西秦 级别: 论坛版主 发帖 1357 云币 2782 加关注 写私信   只看楼主 更多操作楼主  发表于: 10-10 ...

  3. 【J2EE】struts-2.3.16.3+apache-tomcat-8.0.9开发环境部署,“Hello World”的实现。

    1.在官网下载Struts2的开发包 下载链接如下: http://120.203.229.30/5ff/2bc79/5ff16ae8698e1c321758a8f03a1bc0939892bc79/ ...

  4. Electron开发环境部署

    Electron开发环境部署 安装node.js 可以从node.js官方网站上获取安装包,并进行安装,安装完可以通过 ndoe -v 指令进行版本查看. 本文的开发环境为node.js 4.4.5. ...

  5. linux 下 ifcfg-eth0 配置/CentOS_minimal安装和开发环境部署

    CentOS_minimal安装和开发环境部署:http://www.th7.cn/system/lin/201305/39002.shtml 网络接口配置文件 [root@localhost ~]# ...

  6. eclipse+hbase开发环境部署

    一.前言 1. 前提 因为hbase的运行模式是伪分布式,需要用到hdfs,所以在此之前,我已经完成了hadoop-eclipse的开发环境搭建,详细看另一篇文章:hadoop开发环境部署——通过ec ...

  7. Linux——Django 开发环境部署(二)python版本控制器pyenv

    python版本控制器pyenv 之前的 那篇是说明了django环境的site package完全独立出来了,但是使用的python解释器还是系统的,为了继续独立出来,甚至是达到ruby的rvm的自 ...

  8. Linux——Django 开发环境部署(一)

    Django 开发环境部署(一) 之所以 写这篇文章的原因在于django环境的确轻松搭建,之前Ubuntu上安装了,的确很轻松,但是后期我才知道随便做个环境出来很容易到了后面很麻烦,污 染了系统里的 ...

  9. Delphi 10.2 Linux 程序开发环境部署的基本步骤(网络连接方式要选择桥接或者是Host Only)

    Delphi 10.2 Linux 程序开发环境部署的基本步骤 http://blog.qdac.cc/?p=4477 升級到 Delphi 10.2 Tokyo 笔记http://www.cnblo ...

随机推荐

  1. Neo4j学习案例【转】

    转自 打怪的蚂蚁 CSDN: https://blog.csdn.net/xgjianstart/article/details/77285334 neo4j有社区版本和企业版.社区版本是免费的,只支 ...

  2. Genymotion安装总结

    周末的时候为了测试论文中的Almond虚拟助手软件,所以要去Google Play上去下载. 但是我的两个安卓模拟器:夜神和海马玩模拟器的安卓版本太低了,导致无法使用 谷歌服务,所以连商店都进不去. ...

  3. MySQL基础~~表结构操作

    登录数据库服务器 mysql -h127.0.0.1 -uroot -p123456 创建数据库 create database test; 显示所有数据库 show databases; 指定要操作 ...

  4. [转]ubuntu中查找软件的安装位置

    原博客地址:http://www.cnblogs.com/zhuyatao/p/4060559.html ubuntu中的软件可通过图形界面的软件中心安装,也可以通过命令行apt-get instal ...

  5. codeforces1045B

    CF1045B 自己瞎鸡巴yy了一下,可知若一个数X不能被表示出来,那么X所有的表示方法都在A集合中,如a1,a2,a3······an-1,an-2中若a1+ai不能被表示出来,那么如果a1到ai是 ...

  6. BZOJ4891 TJOI2017龙舟(Polllard-Rho)

    对给定模数分解质因数后约分即可.依然常数巨大过不了. #include<iostream> #include<cstdio> #include<cmath> #in ...

  7. BZOJ4025 二分图(线段树分治+并查集)

    之前学了一下线段树分治,这还是第一次写.思想其实挺好理解,即离线后把一个操作影响到的时间段拆成线段树上的区间,并标记永久化.之后一块处理,对于某个节点表示的时间段,影响到他的就是该节点一直到线段树根的 ...

  8. Catenyms POJ - 2337(单词+字典序输出路径)

    题意: 就是给出几个单词 看能否组成欧拉回路或路径  当然还是让输出组成的最小字典序的路 解析: 还是把首尾字母看成点   把单词看成边 记录边就好了 这题让我对fleury输出最小字典序又加深了一些 ...

  9. day25 上山练习 计算圆练习

    # 练习一:在终端输出如下信息 # 小明,10岁,男,上山去砍柴 # 小明,10岁,男,开车去东北 # 小明,10岁,男,最爱大保健 # 老李,90岁,男,上山去砍柴 # 老李,90岁,男,开车去东北 ...

  10. python3实现感知器,简单神经网络

    三个输入,四个输出,四组数据 对numpy和矩阵运算还不是太熟悉,可能写的复杂了点,矩阵数组来回转换 代码请查看码云 运行结果片段