只是想打印个Hello World

“Hello World” 是一切学习的开始。最近我开始尝试在Linux下,使用Swift打印”Hello World”。接下来我分享一下,我在Linux下打印”Hello World”整个过程。

安装虚拟机

Mac下有Homebrew这样的神器,让我在Mac下搭建环境变得无比的畅快。

安装Virtualbox

1
brew install Caskroom/cask/virtualbox

安装Vagrant

1
brew install Caskroom/cask/vagrant

下载ubuntu Linux 虚拟镜像包

1
2
3
mkdir dev
cd dev
wget -c https://github.com/jose-lpa/packer-ubuntu_14.04/releases/download/v2.0/ubuntu-14.04.box
  1. 创建dev文件夹
  2. dev目录下
  3. 下载.box

我这里下的是ubuntu 14.04 LTS 版本的镜像包,需要其他进行包可以到http://www.vagrantbox.es下载

由于为了方便记录整个环境搭建的过程,我环境搭建时所有的操作都使用命令行来完成。大家也可以使用迅雷等工具下载.box文件。

导入镜像包

1
2
vagrant box add ubuntu ubuntu-14.04.box.box
vagrant init

启动虚拟机

1
vagrant up
  • 这里顺便介绍一下关闭虚拟机的命令vagrant halt
  • 使用vagrant up这个命令都必须在vagrant init的目录下执行,因为vagrant init会生成一个Vagrantfile文件vagrant up执行依赖这个文件

ssh登录虚拟机环境

1
vagrant ssh

安装Linux下的Swift编译环境

更新APT

如果你使用和我一样的系统版本请先更新一下APT

1
apt-get update

安装Swift编译工具链

1
sudo apt-get install git cmake ninja-build clang python uuid-dev libicu-dev icu-devtools libbsd-dev libedit-dev libxml2-dev libsqlite3-dev swig libpython-dev libncurses5-dev pkg-config

如果你和我一样使用Ubuntu 14.04 LTS 版本,请执行完上面操作后执行以下命令

1
2
3
sudo apt-get install clang-3.6
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.6 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.6 100

其实以上安装的有些工具不是都必须的,但为了方便以后能直接通过Swift源码编译出Swift标准库,所以这里我把所有编译Swift源码要使用的工具都安装了。

如果你和我一样在安装过程中出现以下打印请使用apt-get update更新你的APT工具。

1
2
3
4
5
6
7
8
9
10
Fetched 46.5 MB in 6min 28s (120 kB/s)
E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/u/util-linux/libuuid1_2.20.1-5.1ubuntu20.3_amd64.deb 404 Not Found [IP: 91.189.91.23 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/libx/libxml2/libxml2_2.9.1+dfsg1-3ubuntu4.4_amd64.deb 404 Not Found [IP: 91.189.88.149 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/libx/libxml2/libxml2-dev_2.9.1+dfsg1-3ubuntu4.4_amd64.deb 404 Not Found [IP: 91.189.88.161 80]
E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/u/util-linux/uuid-dev_2.20.1-5.1ubuntu20.3_amd64.deb 404 Not Found [IP: 91.189.91.26 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

下载Swift标准库

1
wget -c https://swift.org/builds/swift-2.2.1-release/ubuntu1404/swift-2.2.1-RELEASE/swift-2.2.1-RELEASE-ubuntu14.04.tar.gz

我这里下载的是swift 2.2.1版本

最新的发布版本可以到https://swift.org/download/#releases获取

安装Swift标准库

1
tar xzf swift-2.2.1-RELEASE-ubuntu14.04.tar.gz

swift-2.2.1-RELEASE-ubuntu14.04.tar.gz 就是你下载下来的标准库的包名。

配置Swift标准库

这里我们需要配置的是环境变量

1
vi ~/.bashrc

这里我把标准库放在了~/swift-2.2.1-RELEASE-ubuntu14.04
~/swift-2.2.1-RELEASE-ubuntu14.04/usr/bin存放的是Swift标准库的工具链
所以我如此配置环境变量。

接下来执行下面命令,运行一下.bashrc文件

1
. .bashrc

我们可通过swift --version确认标准库是否安装成功。

打印Hello World

最激动人心的时刻到了,我们已经可以开始打印”Hello World”了。让我们向世界问好吧。。。2333333

创建代码文件

1
vi main.swift

进入vi编辑模式,输入

1
print("Hello World !")

编译运行代码

1
swift main.swift

我已经成功了。。。你呢?%>_<%

懒人福利

你还有没成功打印出 “Hello World” 吗?

没关系,我写了个简单的Vagrantfile放到了 Github上 地址

你只要把工程给clone下来。cdswift-vagrant 目录然后 vagrant up。然后你就可以出去喝杯咖啡,看看电影,或者撸两把。等’vagrant up’执行完后跟着提示执行 vagrant ssh,然后 echo export PATH=/swift/usr/bin:"\$PATH" >> ~/.bashrc && . ~/.bashrc

好了,你可以愉快的打印你的”Hello World”了。