美文网首页
在Centos7.2上安装编译Swift

在Centos7.2上安装编译Swift

作者: cubegao | 来源:发表于2019-12-26 13:26 被阅读0次

由于想用Swift写服务玩玩,准备在Centos7.2上部署一个Swift环境,能跑一下Perfect。

由于Docker的种种好处,当然是选择它来部署Swift环境。

安装Docker

更新yum包到最新。如果是生产机器务必慎重更新内核,避免出现不必要的问题。

[root@fadaixiaohai ~]# yum update

执行 Docker 安装脚本。

[root@fadaixiaohai ~]# curl -fsSL https://get.docker.com/ | sh

启动 Docker 进程。

[root@fadaixiaohai ~]# service docker start

验证 docker 是否安装成功并在容器中执行一个测试的镜像。

[root@fadaixiaohai ~]# docker run hello-world
Hello from Docker!

大概两三分钟就安装好了,国内的服务器可能要用镜像加速会好点。

安装Swift

拉取Swift的镜像到本地。

[root@fadaixiaohai ~]# docker pull swift

镜像拉取成功后就可以使用docker images列出当前我们拉取到本地的所有镜像:

[root@fadaixiaohai ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
swift               latest              934835f58041        3 weeks ago         1.3GB
hello-world         latest              f2a91732366c        4 months ago        1.85kB

我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

在镜像里面创建一个容器并且连接它

[root@fadaixiaohai ~]# docker run  -it --name swiftfun swift /bin/bash

其中-it意思是以交互式(interactive)终端(tty)的方式运行,--name swiftfun指定容器的名称,/bin/bash是容器启动后执行的命令,也就是进入bash控制台,运行成功后会进入:

root@8408a26c123b:/#

默认是root用户,这里我们使用诸如apt-get命令时就不需要加sudo了

现在,你可以在容器中运行swift --version来确认是否配置成功:

root@8408a26c123b:/# swift --version
Swift version 4.0.3 (swift-4.0.3-RELEASE)
Target: x86_64-unknown-linux-gnu

然后用swift命令看是否能进入swift REPL:

root@8408a26c123b:/# swift
error: failed to launch REPL process: process launch failed: 'A' packet returned an error: 8

发现报错了,找到Docker官方给的解决方案是:

[root@fadaixiaohai ~]# docker run --cap-add sys_ptrace -it --rm swift swift
error: failed to launch REPL process: process launch failed: 'A' packet returned an error: 8

运行时添加了--cap-add sys_ptrace选项,应该是添加一个系统的权限。加上--rm选项是创建新容器时,把已经存在的旧容器删掉。但是依然是相同的报错。

最后在github上面好到了解决方案。添加一条--privileged。它的含义是:
--privileged=false Give extended privileges to this container 赋予容器扩展权限
运行结果如下:

[root@fadaixiaohai ~]# docker run --cap-add sys_ptrace --privileged -it --rm swift swift
Welcome to Swift version 4.0.3 (swift-4.0.3-RELEASE). Type :help for assistance.
1> print("hello world")
hello world
2>

以后想要连接swiftfun这个容器,必须先启动,后连接。方法如下:

[root@fadaixiaohai ~]# docker start swiftfun
swiftfun
[root@fadaixiaohai ~]# docker attach swiftfun
root@8408a26c123b:/#

查看所有容器状态:

[root@fadaixiaohai ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
8408a26c123b        swift               "/bin/bash"         27 hours ago        Exited (0) About a minute ago                       swiftfun
cc12559d586c        hello-world         "/hello"            27 hours ago        Exited (0) 27 hours ago                             boring_yonath

设置Docker开机启动。

[root@fadaixiaohai ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

以上就是本文的所有内容了,祝你玩得愉快!

非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://cubegao.com/archives/install_frida.html

相关文章

  • 在Centos7.2上安装编译Swift

    由于想用Swift写服务玩玩,准备在Centos7.2上部署一个Swift环境,能跑一下Perfect。 由于Do...

  • 服务架设-CentOS7下编译安装 PHP7

    Centos7.2 编译安装PHP7 PHP7,编译安装: 环境:centos7.2 (注意:因为我用的ng...

  • coturn穿透服务器搭建

    安装环境 阿里云CentOS7.2(64bit) 下载并安装libevent-2.0 下载编译安装coturn 查...

  • centos配置angular运行环境

    一、 编译源码安装 参考文章: 在centos7.2中配置angular运行环境详解 nodejs官网下载源码 官...

  • nginx编译安装

    环境:centos7.2 1、去nginx.ogr下载源码包 2、安装编译所需环境及依赖的库 yum instal...

  • centos7.2编译安装nginx

    一、环境准备 ceontos7.2 二、安装必要的库 三、下载nginx 我这里安装的是/usr/local/ng...

  • CentOS7.2 编译安装LNMP

    1 先关闭防火墙 CentOS 7.0开始默认使用的是firewall作为防火墙 2 关闭SELINUX 3 安装...

  • Swift 工程速度编译慢

    在Xcode 7.2上编译Swift编译速度越来越慢,查了很多资料下面是我总结的几点原因。下面代码均为Swift ...

  • CentOS7 安装Python3

    本文主要介绍在CentOS7上通过源码编译的方式案头Python3, 文中用到的是CentOS7.2, Pytho...

  • fastdfs-nginx-module安装

    前提:已成功安装fastdfs, Fastdsf在centos7.2下的安装 参考:Centos7安装FastDF...

网友评论

      本文标题:在Centos7.2上安装编译Swift

      本文链接:https://www.haomeiwen.com/subject/miikoctx.html