패키지 서명, 자동 업데이트 등으로 Kotlin을 안전하게 설치


10

Kotlin 은 훌륭한 프로그래밍 언어로 널리 주목을 받고 있으며 현재 Android 개발과 같이 공식적으로 지원되고 있습니다. 그러나 설치에 대한 옵션 은 보안 문제에 대해 명확하지 않습니다. 나도 몰라 sdkman의 자동, 내가 얼마나 큰 알고하지 않습니다 (apt-get을가 않습니다처럼) 코 틀린 및 기타 설치된 패키지에 대한 보안 업데이트를 추적하는 경우 패키지에 대한 검사 (또는 지원) 서명, 나도 몰라 설치 등

요약하자면

비교적 안전한 Kotlin 설치 방법이 있습니까 (패키지 서명, 자동 업데이트 등)?

예를 들어 PPA가 있습니까? (데비안 / 우분투 용으로 패키지 작업을하는 사람이 있습니까?).

또는 sdkman에 필요한 속성이 있습니까?

아니면 다른 접근법이 있습니까?

업데이트 : 나는 것을 볼 우분투 - 메이크업 (umake)는 옵션입니다. IDEA 및 Kotlin의 경우 Eclipse JEE 및 IntelliJ IDEA EAP 지원과 함께 릴리스 된 Ubuntu Make 16.03에 설명 된대로 PPA 버전이 여전히 필요한 것 같습니다.

그러나 umake의 보안 측면에 대한 정보를 쉽게 찾을 수 없다는 사실에 놀랐으며 아직 업데이트를 수행하지 않는 것 같습니다 ( 도구 업데이트 · Issue # 74 ). 제 질문은 여전히 ​​열려 있습니다.


@Alban 근본적인 질문을 명확하게 해주셔서 감사합니다.
nealmcb

답변:


2

JetBrains가 개발 한 명령 행 Kotlin 컴파일러는 현재 지원되는 모든 Ubuntu 버전에서 스냅 패키지로 설치할 수 있습니다. 설치하려면 터미널을 열고 다음을 입력하십시오.

sudo apt install snapd  
sudo snap install kotlin --classic 

사용 가능한 도구 :

  • 코트 론
  • kotlinc-jvm
  • kotlinc-js
  • kotlin-dce-js

  1. Kotlin에서 표시되는 간단한 응용 프로그램을 만듭니다 Hello, World!. 다음과 같이 hello.kt라는 실행 권한이있는 새 파일을 작성하십시오.

    fun main(args: Array<String>) {
        println("Hello, World!")
    }
  2. Kotlin 컴파일러를 사용하여 애플리케이션을 컴파일하십시오.

    kotlinc hello.kt -include-runtime -d hello.jar  
  3. 응용 프로그램을 실행하십시오.

    java -jar hello.jar

1
아 감사합니다! 또한 14.04에서는 sudo apt install snapd 스냅을 실행하기 전에 신뢰할 수있는 새로운 스냅 백 포트를 설치해야합니다 .
nealmcb

스냅 설치가 제대로 작동했습니다. 그러나 "인간"은 작동하지 않습니다. / snap / kotlin 아래를 보면 많은 매뉴얼 페이지가 있습니다. Snap도 이것들을 설치 했어야합니까?
스티븐 스미스

kotlin -h초보자도 괜찮습니다. 이 -h옵션은 모든 스냅에 적용됩니다. 그 후 온라인 자습서와 설명서를 사용합니다.
karel

1
감사. 방금 man install이 버그 # 1575593임을 알았습니다.
스티븐 스미스

감사! 스냅 인용
nealmcb

2

나는 umake에 대해 모른다. 방금 분산 zip 아카이브에서 최소 deb 패키지를 생성하기 위해 작은 bash 스크립트를 작성했습니다.

새로운 kotlinc-deb 파일을 작성 하십시오.

#!/usr/bin/env bash
if [ -z "$1" ]; then echo "Error: no input zip file is specified"; exit 1; fi
version=${1#kotlin-compiler-}
version=${version%.zip}
unzip $1 -d kotlinc_${version}_all/
cd kotlinc_${version}_all/
mkdir -v opt
mv -v kotlinc opt/
rm -rv 'opt/kotlinc/bin/'*.bat
mkdir -vp usr/{bin,share/doc}
mv -v opt/kotlinc/license usr/share/doc/kotlinc
sed -i $'s/\r$//' 'opt/kotlinc/bin/'* #The new 1.2.0 version has shell scripts in
                                      # CRLF format. That causes issues when running
                                      # them. So I added this CRLF to LF conversion
cd usr/bin
ln -svt . '../../opt/kotlinc/bin/'*
cd ../..
mkdir -v DEBIAN
cat >DEBIAN/control <<EOF
Package: kotlinc
Version: ${version}
Section: java
Priority: optional
Maintainer: ${LOGNAME} <${LOGNAME}@localhost>
Architecture: all
Description: The Kotlin compiler
 The compiler for the Kotlin programming language.
EOF
dpkg-deb -b ../kotlinc_${version}_all{,.deb}

그런 다음 다음을 실행하십시오.

$ chmod +x kotlinc-deb
$ ./kotlinc-deb kotlin-compiler-1.1.51.zip

그런 다음 생성 된 파일 kotlinc_1.1.51_all.deb을 일반적인 deb 패키지로 설치할 수 있습니다 .


감사! 실제 데비안 패키지 나 적어도 우분투 파의 시작점처럼 들리는데, 일부 조직에서는 업데이트 된 상태를 유지할 수 있습니다. 그러나 나의 주요 목표는 안전하고 안전한 방식으로 설치하는 것이며, 최신 상태를 유지하기 위해 신뢰할 수 있고 신뢰할 수있는 약속으로 뒷받침되는 서명과 패키징 방식이 모두 필요합니다.
nealmcb

1
이 답변은 설치 방법을 제공 합니다 . OP의 질문은 "상대적으로 안전한 Kotlin에 대한 설치 방법이 있습니까?"였습니다. 그렇다면 ... 정확하게 zip 파일로 침대 패키지를 만드는 방법은 무엇입니까? 이 답변은 그 부분을 다루지 않습니다.
공감

@SergiyKolodyazhnyy, "보안"을 다르게 정의 할 수도 있습니다. 그는 "안전한 보안"을 썼습니다. 그리고 나는 나의 접근 방식이 수행하는 것보다 더 안전하다고 생각합니다 curl -s https://get.sdkman.io | bash && sdk install kotlin. .deb 패키지를 직접 생성 할 때 중간 사람 (sdkman)없이 업스트림에서 직접 패키지를 얻습니다. 따라서 나는 그것을 더 안전한 것으로 본다. 현재 양식의 접근 방식에는 완전 자동 (보안 포함) 업데이트가 없지만 더 이상 자동화하기가 어렵지 않습니다.
Des Nerger

1
@DesNerger OK, 업스트림에서 가져 오는 것은 괜찮지 만 사실은 1) zip 패키지의 출처를 언급하지 못했습니다. 2) 귀하의 답변에 보안에 대한 언급이 전혀 없습니다. 그것은 당신이 만든 스크립트에 대해서만 이야기합니다. 시원하고 모든 것이지만 사이트는 질문 답변 유형이므로 특정 형식을 준수해야합니다. OP는 한 가지 질문을했으며 스크립트를 제공했으며 원래 질문과 어떻게 관련이 있는지 설명하지 않았습니다. 답답하지 않고 답을 수정하면 댓글에있는 내용을 포함 할 수 있습니다.
Sergiy Kolodyazhnyy '

1
@ DrBeco, 그들은 일반적으로 거기에 게시 : github.com/JetBrains/kotlin/releases/latest
Des Nerger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.