很多时候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的issueshttps://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 ...
随机推荐
-
SQL脚本IN在EF中的应用
C#查询条件中存在in,为了避免拼脚本,参数化查询数据库,提高安全性,规避脚本注入.网上找了好多,最后发现 SqlParameter 是无法实现in的操作,所以只能变相来实现,结果还是不错的,性能上各 ...
-
【MFC】WM_GETMINMAXINFO 设置无边框窗口最大花不遮挡任务栏
LRESULT OnGetMinMaxInfo( UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/ ) { ...
-
Spring MVC 教程
目录 一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 ...
-
flask sqlchemy 多对多的自引用关系定义
多对多的定义可以使用关联表,或者重新定义一个模型,通过模型定义多对多的自引用在flask web开发书里有讲到,这里主要演示用关联表定义的方法. from flask_sqlalchemy impor ...
-
windows中的常用Dos命令
# __切换盘符目录__ E/D: # 从C盘切换到E盘或者D盘# __切换到指定文件夹下__cd folder_name(指定文件夹名--相对/绝对路径)cd .. # 返回上一级目录cd / # ...
-
Java NIO系列教程(八) SocketChannel
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道.可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器. ...
-
Linux 下Shell的学习3-service编程
1. vim /etc/init.d/nginx 2. chmod 755 /etc/init.d/nginx 3. service nginx status #!/bin/bash # nginx ...
-
vue2 如何操作dom
在vue中可以通过给标签加ref属性,就可以在js中利用ref去引用它,从而操作该dom元素,以下是个例子,可以当做参考 <template> <div> <div id ...
-
noip模拟赛#23
T1:n个元素的集合.要求取出k个子集,使得k个子集交集为空集.问有多少中取法. =>推了很久...想的是从k等于2的情况推到k等于3的情况....然后k=2推出来了k=3也推出来了...推了挺 ...
-
【Kubernetes】The connection to the server <;master>;:6443 was refused - did you specify the right host or port?
不知道怎么用着用着,使用kubectl 时报错,错误如下: root@R740--:~# kubectl get pod The connection to the server 107.105.13 ...