パッケージ署名、自動更新などを使用して、Kotlinを安全にインストールする


10

Kotlinは優れたプログラミング言語として広く注目されており、Android開発などで正式にサポートされています。しかし、それをインストールするために私が見るオプションは、セキュリティの問題について明確はありません。sdkmanがパッケージの署名をチェックする(またはサポートする)かどうかはわかりません。Kotlinと他のインストール済みパッケージ(apt-getが行うように)のセキュリティ更新を自動的に追跡するかどうかはわかりません。インストール予定など

まとめると

比較的安全なKotlinのインストール方法はありますか(パッケージの署名、自動更新など)?

たとえば、PPAはありますか?(Debian / Ubuntu用にパッケージ化するために働いている人はいませんか?)。

または、sdkmanに必要なプロパティがありますか?

それとも他のアプローチがありますか?

更新:ubuntu-make(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では、snapdをsudo apt install snapd 実行する前に、snapdの新しいバックポートをtrusty:にインストールする必要があるようです。
nealmcb

スナップインストールは正常に機能しました。しかし「男は」は機能しません。/ snap / kotlinの下を見ると、たくさんのmanページがあります。スナップもこれらをインストールする必要がありますか?
スティーブンスミス2018

kotlin -h初心者には問題ありません。この-hオプションは、すべてのスナップでも機能します。その後、オンラインチュートリアルとドキュメントを使用します。
karel

1
ありがとう。man installもスナップのバグ#1575593であることを発見しました。
スティーブンスミス2018

ありがとう!スナップのmanページのバグの最新ステータスへのリンク:bugs.launchpad.net/snapd/+bug/1575593
nealmcb

2

うまけは知りません。配布された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パッケージとしてインストールできます。


ありがとう!これは、実際のDebianパッケージ、または少なくとも一部の組織が最新の状態に保つことを約束できるUbuntu ppaの素晴らしい出発点のように思えます。しかし、私の主な目標は、安全な方法でインストールすることであり、それを最新の状態に保つには、信頼できる信頼できるコミットメントに裏打ちされた署名とパッケージングアプローチの両方が必要です。
nealmcb

1
OK、この回答はインストールする方法を提供ます。OPの質問は、「比較的安全なKotlinのインストール方法はありますか」でした。それで... zipファイルからベッドパッケージをどのように正確に安全にするのですか?この回答では、その部分については触れていません。反対票を投じたくないが、答えは質問の核心に対処していない
Sergiy Kolodyazhnyy

@SergiyKolodyazhnyy、「セキュリティ」の定義が異なる可能性があります。彼は「RELATIVE secure」を書いた。そして、私は自分のアプローチがそうするよりも安全だと信じていcurl -s https://get.sdkman.io | bash && sdk install kotlinます。.debパッケージを自分で生成するとき、中間者(sdkman)なしで、上流から直接パッケージを取得します。したがって、私はそれがより安全であると考えています。現在の形でのアプローチには、完全に自動化された(安全なものを含む)更新が欠けていますが、さらに自動化することは難しくありません。
Des Nerger、2017

1
@DesNerger OK、アップストリームからの取得はOKですが、実際は1)zipパッケージのソースの説明に失敗しました。2)回答にセキュリティについての言及がない。それはあなたが作ったスクリプトについて話すだけです。かっこいいですが、サイトは質問と回答のタイプなので、特定の形式に準拠する必要があります。OPは1つのことを尋ねました、あなたは台本を提供しました、そしてそれが元の質問にどのように関連するか説明はありませんでした。イライラしないでください、あなたの答えを編集してください。おそらくそこにあなたのコメントからのものを含めることができます。
Sergiy Kolodyazhnyy 2017

1
@DrBeco、彼らは通常そこで公開しています:github.com/JetBrains/kotlin/releases/latest
Des Nerger
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.