很多时候iOS开发完毕需要接入CI中,而很多CI是基于Linux的,需要在Linux平台安装Swift和Swiftlint,下面就是针对这两个软件的安装步骤。

Swift安装

环境

系统:Ubuntu 16.04

下载Release包

在Swift官方网站下载Release包。

官方地址:https://swift.org/download/#releases

以5.0.2的Realse下载地址为例:

https://swift.org/builds/swift-5.0.2-release/ubuntu1604/swift-5.0.2-RELEASE/swift-5.0.2-RELEASE-ubuntu16.04.tar.gz

通过Linux的命令行下载

通过wget下载工具

wget https://swift.org/builds/swift-5.0.2-release/ubuntu1604/swift-5.0.2-RELEASE/swift-5.0.2-RELEASE-ubuntu16.04.tar.gz

如果断网续传,可以使用如下命令:

wget -c https://swift.org/builds/swift-5.0.2-release/ubuntu1604/swift-5.0.2-RELEASE/swift-5.0.2-RELEASE-ubuntu16.04.tar.gz

下载完成后进行解压:

tar xzf swift-5.0.2-RELEASE-ubuntu16.04.tar.gz

解压后的路径:

配置PATH环境变量

将解压后的文件地址的swift-5.0.2-RELEASE-ubuntu16.04/usr/lib设置为系统路径

export PATH=/绝对路径/swift-5.0.2-RELEASE-ubuntu16.04/usr/bin/:"${PATH}"

验证

通过swift --version命令验证一下:

验证通过以后记得将Path加入~/.bash_profile文件中

到这一步Swift在Linux上就安装好了,如果需要查看源码,还需要安装源码,可以在

https://github.com/apple/swift中找到安装方法,这里就不展开了。

Swiftlint安装

环境:

系统:Ubuntu 16.04

Swfit: swift-5.0.2-RELEASE-ubuntu16.04

命令行安装

使用如下命令:

git clone https://github.com/realm/SwiftLint.git
cd SwiftLint
swift build -c release --static-swift-stdlib

安装完成后的路径

配置PATH环境变量

export PATH=/绝对路径/SwiftLint/.build/x86_64-unknown-linux/release/:"${PATH}"

配置SourceKit

SwiftLint检查代码格式是基于Swift的SourceKit的,文件位于usr/lib/libsourcekitdInProc.so,需要将其复制到realse路径下:

cp /绝对路径/swift-5.0.2-RELEASE-ubuntu16.04/usr/lib/libsourcekitdInProc.so  /绝对路径/SwiftLint/.build/x86_64-unknown-linux/release/

验证

通过swiftlint version命令验证一下:

验证通过以后记得将Path加入~/.bash_profile文件中

可能会遇到的问题

安装后可能遇到编译失败的情况,可以尝试安装如下命令:

apt-get install -y clang libblocksruntime0 libcurl4-openssl-dev

其他可能的问题,可以参考Swiftlint的Github关于Linux的issues

https://github.com/realm/SwiftLint/issues/732

Linux环境变量PATH说明

修改Linux环境变量PATH有三种方法,根据情况需要自己选择

1、export PATH=/绝对路径/:"${PATH}" (推荐)

使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH设置就会失效

2、vi ~/.bash_profile (推荐)

使用这种方法,只对当前用户有效,切换登录用户以后,PATH设置就会失效

3、vi /etc/profile

使用这种方法,对所有用户有效,可能会给系统带来安全性问题。

Linux(Ubuntu)安装Swift和Swiftlint的更多相关文章

  1. linux: Ubuntu安装samba的问题

    Ubuntu安装samba的问题 http://blog.csdn.net/jk110333/article/details/8920841 root@ubuntu:~# apt-get instal ...

  2. [Linux]ubuntu安装基本流程

    ubuntu安装基本流程 1.设置分辨率2.设置语言环境3.设置服务器镜像源4.添加终端5.apt.apt-get更新和升级系统软件 sudo apt update/upgrade sudo apt- ...

  3. linux Ubuntu安装后没有引导 解决方案

    用EasyBCD添加ubuntu grub2引导,适用于12.04 及之前版本的ubuntu安装好easybcd后运行,之后看图

  4. linux ubuntu安装好后,开通远程登录

    1.设置root密码 ubuntu安装好后,用初始的第一个用户登录,然后修改root密码: sudo passwd root 2.检查sshd服务是否启动 (1)查看sshd状态 -----若没有ss ...

  5. Linux (Ubuntu)安装svn

    1 先查看是否已经安装了svn 如果没有安装svn则: ubuntu@ip----:~$ svn --version The program 'svn' is currently not instal ...

  6. Linux ubuntu安装

    http://www.ubuntu.org.cn/download/alternative-downloads 下载地址: http://releases.ubuntu.com/ 国内镜像: http ...

  7. Debian系列Linux/Ubuntu 安装软件

    wps(http://community.wps.cn/download/) 优客天气(https://launchpad.net/indicator-china-weather/+download) ...

  8. linux ubuntu安装jdk

    Oracle对Jdk7与Jre7的关系的经典图解 Oracle has two products that implement Java Platform Standard Edition(Java ...

  9. Linux/Ubuntu安装搜狗输入法

    零.你首先需要安装fcitx小企鹅输入法,相信绝大部分用linux的中国人都用这个输入法,安装fcitx后同时还能解决Sublime Text的中文输入问题. 安装fcitx输入法前首先要安装fcit ...

随机推荐

  1. Ural 2062:Ambitious Experiment(树状数组 || 分块)

    http://acm.timus.ru/problem.aspx?space=1&num=2062 题意:有n个数,有一个值,q个询问,有单点询问操作,也有对于区间[l,r]的每个数i,使得n ...

  2. scrapy实战1分布式爬取有缘网(6.22接口已挂):

    直接上代码: items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See docu ...

  3. 《ElasticSearch6.x实战教程》正式推出(附图书抽奖)

    经过接近1个月的时间,ElasticSearch6.x实战教程终于成册.这本实战教程小册有很多不足(甚至可能有错误),也是第一次完整推出一个系列的教程. 1年前,我开始真正接触ES,在此之前仅停留在知 ...

  4. [NOIP2013]华容道 题解(搜索)

    [NOIP2013]华容道 [题目描述] 这道题根据小时候玩华容道不靠谱的经验还以为是并查集,果断扑街.考后想想也是,数据这么小一定有他的道理. 首先由于是最小步数,所以BFS没跑了.那么我们大可把这 ...

  5. HTML&CSS构建和设计网站

    1.a链接:两个特性,href.target,href里添加mailto:邮箱可以直接链接到其它人的邮箱,添加#id,可以把窗口位置直接定位到该id的元素位置, target:_black可以在新的窗 ...

  6. android_onSaveInstanceState_onRestoreInstanceState研究

    当一个activity的状态是一个容易被系统宰掉时,比如pause或者stop状态,此时这个活动不一定已经被销毁了,那么这个activity的onSaveInstanceState方法会被系统调用(值 ...

  7. 【小家Spring】Spring IoC是如何使用BeanWrapper和Java内省结合起来给Bean属性赋值的

    #### 每篇一句 > 具备了技术深度,遇到问题可以快速定位并从根本上解决.有了技术深度之后,学习其它技术可以更快,再深入其它技术也就不会害怕 #### 相关阅读 [[小家Spring]聊聊Sp ...

  8. SpringBoot之SpringApplication Explain

    SpringApplication Explain The SpringApplication class provides a convenient way to bootstrap a Sprin ...

  9. Excel催化剂开源第17波-VSTO开发之ADO.Net访问Sqlserver

    在Excel催化剂中,独树一帜地推出了Excel与数据库交互功能,目前仅实现了对Sqlserver的交互,在通用型插件中仅此一家,别无其他. 为何会出现这样的局面呢,原因大概有以下几大方面: 和数据库 ...

  10. [leetcode] 290. Word Pattern (easy)

    原题 思路: 建立两个哈希表,分别保存: 1 模式 :单词 2 单词 :是否出现过 水题 /** * @param {string} pattern * @param {string} str * @ ...