Linux(Ubuntu)安装Swift和Swiftlint
很多时候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的更多相关文章
- linux: Ubuntu安装samba的问题
Ubuntu安装samba的问题 http://blog.csdn.net/jk110333/article/details/8920841 root@ubuntu:~# apt-get instal ...
- [Linux]ubuntu安装基本流程
ubuntu安装基本流程 1.设置分辨率2.设置语言环境3.设置服务器镜像源4.添加终端5.apt.apt-get更新和升级系统软件 sudo apt update/upgrade sudo apt- ...
- linux Ubuntu安装后没有引导 解决方案
用EasyBCD添加ubuntu grub2引导,适用于12.04 及之前版本的ubuntu安装好easybcd后运行,之后看图
- linux ubuntu安装好后,开通远程登录
1.设置root密码 ubuntu安装好后,用初始的第一个用户登录,然后修改root密码: sudo passwd root 2.检查sshd服务是否启动 (1)查看sshd状态 -----若没有ss ...
- Linux (Ubuntu)安装svn
1 先查看是否已经安装了svn 如果没有安装svn则: ubuntu@ip----:~$ svn --version The program 'svn' is currently not instal ...
- Linux ubuntu安装
http://www.ubuntu.org.cn/download/alternative-downloads 下载地址: http://releases.ubuntu.com/ 国内镜像: http ...
- Debian系列Linux/Ubuntu 安装软件
wps(http://community.wps.cn/download/) 优客天气(https://launchpad.net/indicator-china-weather/+download) ...
- linux ubuntu安装jdk
Oracle对Jdk7与Jre7的关系的经典图解 Oracle has two products that implement Java Platform Standard Edition(Java ...
- Linux/Ubuntu安装搜狗输入法
零.你首先需要安装fcitx小企鹅输入法,相信绝大部分用linux的中国人都用这个输入法,安装fcitx后同时还能解决Sublime Text的中文输入问题. 安装fcitx输入法前首先要安装fcit ...
随机推荐
- jquery Easy UI Datagrid(数据网格)学习心德,附API
第一步,引入主要的css样式和js文件 <meta http-equiv="Content-Type" content="text/html; charset=ut ...
- Java 垃圾收集总结
概述 垃圾收集(Garbage Collection,GC),它不是Java语言的伴生产物,它的历史比Java还要久远. 人们主要思考GC需要完成的3件事情: 哪些内存需要回收? 什么时候回收? 如何 ...
- CDQZ集训DAY1 日记
爆炸的一天…… 上午考试,然而一道题都没想出正解. T1刚看到题就想到数位DP,然后有感觉是反演,然后读完题之后又觉得是数位DP,发现最后只关注最后9位打了一个类似数位DP的爆搜.期望20分,实际10 ...
- CDQZ集训DAY0 日记
貌似没发生什么事…… 按照教练员的交代,写一下流水账…… 早上5:30到了机场,然后就默默地坐着飞机到了成都.然后就按预定好的被GXY的父亲的朋友接机(貌似因为觉得GXY和他爸的同学挺像被批判一番). ...
- 使用WebService发布soap接口,并实现客户端的https验证
什么是https HTTPS其实是有两部分组成:HTTP + SSL / TLS, 也就是在HTTP上又加了一层处理加密信息的模块,并且会进行身份的验证. 如何进行身份验证? 首先我们要明白什么是对称 ...
- Java面试题汇总---基础版(附答案)
基于我个人对面试的认知和招聘经验,在此我总结一下Java开发者的基础知识掌握要求,及应聘者面试的需要准备的内容. 首先,Java基础是每个面试官都会问到的,可能只是针对工作经验的多少,对问题追踪深度有 ...
- 什么是常量?变量? if语句介绍
1.python 的历史 2004 年 Django 的产生 phyton2与 python3 的区别 Python2:源码不统一,有重复的代码功能 Python3:源码统一,没有有重复的代码功能 2 ...
- seleniumGrid分布式远程执行测试脚本
执行UI自动化测试脚本时,不仅可以在本地执行,也可以远程指定某计算机执行测试脚本,seleniumGrid为我们提供了这类服务,但还需要自己搭建环境. 一.本地计算机需要准备java环境和seleni ...
- list模板题
题面: 设计一个int类型的动态链表L,L中有一个代表当前位置的光标,支持下列操作: insert(x): 在光标前面插入元素x,插入后光标指向新插入的元素x move(d): 如果d为正数,则光标向 ...
- 微信小程序踩坑日记1——调用微信授权窗口
0. 引言 微信小程序为了优化用户体验,取消了在进入小程序时立马出现授权窗口.需要用户主动点击按钮,触发授权窗口. 那么,在我实践过程中,出现了以下问题. . 无法弹出授权窗口 . 希望在用户已经授权 ...