Ubuntu16.04에 Swift4를 설치하고 Vapor에 Hello World를 설치하기 전에 #love_swift
작자 규격
환경
최신 버전 보기
어떤 언어든 다 그렇지만 최신 버전이 궁금해요.
2018년 1월 20일 현재 최신은 4.0.3인 것 같습니다.
Ubuntu에 설치
Ubuntu 버전 보기
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
16.04.설치 도구
참조 Ubuntu16.04에 Swift4를 설치하여 swift 패키지를 간단히 사용 설치
$ sudo apt-get install clang libpython2.7 libxml2
설치 스위치
4.0.3은 DL
$ wget https://swift.org/builds/swift-4.0.3-release/ubuntu1604/swift-4.0.3-RELEASE/swift-4.0.3-RELEASE-ubuntu16.04.tar.gz
$ tar zxfv swift-4.0.3-RELEASE-ubuntu16.04.tar.gz
$ sudo mv swift-4.0.3-RELEASE-ubuntu16.04 /usr/local/swift
패스를 하다.확인
$ swift --version
Swift version 4.0.3 (swift-4.0.3-RELEASE)
Target: x86_64-unknown-linux-gnu
무사하다패키지 전환 오류
$ swift package init --type executable
/usr/local/swift/usr/bin/swift-package: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory
Electron apps can't find libcurl.so.사 해결했습니다.$ sudo apt-get install curl libcurl3
패키지 재변환
myswift라는 폴더를 만들고 사용합니다.
$ mkdir myswift
$ cd myswift
$ swift package init --type executable
Creating executable package: myswift
Creating Package.swift
Creating README.md
Creating .gitignore
Creating Sources/
Creating Sources/myswift/main.swift
Creating Tests/
이렇게 하면 헬로월드 프로젝트를 진행할 수 있다.구축해 보세요.
$ swift build
Compile Swift Module 'myswift' (1 sources)
Linking ./.build/x86_64-unknown-linux/debug/myswift
./.build/x86_64-unknown-linux/debug/myswift
의 실행 파일입니다.실행
$ ./.build/x86_64-unknown-linux/debug/myswift
Hello, world!
나는 이곳을 막지 못했다.그럼
Vapor에서 웹 서버 설정 시도
비록 몇 개의 네트워크 프레임워크가 있지만 어쨌든 한번 사용해 보는 것 같다.
$ mkdir webapp
$ cd webapp
$ swift package init --type executable
참조Manual Quickstart 진행.편집
Sources/webapp/main.swift
main.swift
import Vapor
let drop = try Droplet()
drop.get("hello") { req in
return "Hello Vapor"
}
try drop.run()
편집Package.swift
.Package.swift
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "webapp",
dependencies: [
// Dependencies declare other packages that this package depends on.
.package(url: "https://github.com/vapor/vapor.git", from: "2.4.0"),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "webapp",
dependencies: ["Vapor"]),
]
)
구축$ swift build
시간이 오래 걸려요.Compile CHTTP http_parser.c
Compile Swift Module 'libc' (1 sources)
Compile Swift Module 'Debugging' (1 sources)
Compile Swift Module 'Bits' (19 sources)
Compile Swift Module 'PathIndexable' (2 sources)
Compile Swift Module 'Core' (23 sources)
Compile Swift Module 'Transport' (10 sources)
Compile Swift Module 'Random' (6 sources)
Compile Swift Module 'Node' (38 sources)
Compile Swift Module 'Console' (36 sources)
Compile Swift Module 'URI' (6 sources)
Compile Swift Module 'Sockets' (22 sources)
Compile Swift Module 'Crypto' (13 sources)
Compile Swift Module 'BCrypt' (9 sources)
Compile Swift Module 'Cache' (2 sources)
Compile Swift Module 'Branches' (3 sources)
Compile Swift Module 'JSON' (8 sources)
Compile Swift Module 'TLS' (12 sources)
Compile Swift Module 'SMTP' (21 sources)
Compile Swift Module 'Configs' (13 sources)
Compile Swift Module 'HTTP' (45 sources)
Compile Swift Module 'WebSockets' (14 sources)
Compile Swift Module 'Cookies' (11 sources)
Compile Swift Module 'Multipart' (6 sources)
Compile Swift Module 'Routing' (10 sources)
Compile Swift Module 'Sessions' (7 sources)
Compile Swift Module 'FormData' (4 sources)
Compile Swift Module 'Vapor' (100 sources)
Compile Swift Module 'webapp' (1 sources)
Linking ./.build/x86_64-unknown-linux/debug/webapp
WebSocket, Session, 이것저것 떨어졌네.순조롭게 건설되었다.집행
$ ./.build/x86_64-unknown-linux/debug/webapp
Could not load config files from: /home/n0bisuke/myswift/webapp/Config/
Try using the configDir flag
ex: .build/debug/Run --configDir=/absolute/path/to/configs
The default hash should be replaced before using in production.
The default cipher should be replaced before using in production.
No command supplied, defaulting to serve...
Starting server on 0.0.0.0:8080
서버가 시작되었습니다.:8080/hello
.네트워크 서버가 설정되었습니다.
다시 해보고 싶은데 여기까지...
Reference
이 문제에 관하여(Ubuntu16.04에 Swift4를 설치하고 Vapor에 Hello World를 설치하기 전에 #love_swift), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/n0bisuke/items/f62e8f425fc20ede6ffc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)