使用软件包签名,自动更新等安全地安装Kotlin


10

作为一种出色的编程语言,Kotlin受到了广泛的关注,并已得到Android等开发的正式支持。但是我看到的安装选项尚不清楚安全问题。我不知道sdkman是否检查(甚至支持)软件包上的签名,我也不知道它是否自动跟踪Kotlin和其他已安装软件包的安全更新(如apt-get一样),我不知道它的大小安装将是,等等。

所以总结一下

Kotlin是否有相对安全的安装方法(带有程序包签名,自动更新等)?

例如,有PPA吗?(有人在为Debian / Ubuntu打包吗?)。

还是sdkman具有必要的属性?

还是有其他方法?

更新:我看到ubuntu-make(umake)是一个选择。对于IDEA和Kotlin,似乎仍然需要其ppa的版本,如在Eclipse JEE和IntelliJ IDEA EAP支持下发布的Ubuntu Make 16.03所述,更多

但是令我惊讶的是,我无法轻易找到有关umake的安全性方面的任何信息,而且看来它们还没有进行更新(更新工具·第74期),所以我的问题仍然悬而未决。


@Alban感谢您推动我澄清基本问题。
nealmcb

Answers:


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中,您需要先安装新的backed的snapd到trusty:sudo apt install snapd 才能运行snap。
nealmcb

快速安装效果很好。但是,“人做”是行不通的。当我在/ snap / kotlin下查看时,会看到一堆手册页。snap还应该安装这些吗?
史蒂芬·史密斯

kotlin -h对于初学者来说效果很好。该-h选项还适用于所有快照。之后,我将使用在线教程和文档。
karel

1
谢谢。我刚刚发现,手动安装也是bug#1575593。
史蒂芬·史密斯

谢谢!快照的手册页最新状态链接:bugs.launchpad.net/snapd/+bug/1575593
nealmcb

2

我不知道umake。我刚刚编写了一个bash脚本,以从分布式zip归档文件中生成最小的deb包。

创建一个新的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
好的,此答案提供了一种安装方法。OP的问题是“是否有Kotlin的安装方法相对安全”。那么...如何完全用压缩文件制作出安全的床包呢?这个答案不解决那部分。不想拒绝投票,但答案并未解决问题的核心
Sergiy Kolodyazhnyy

@SergiyKolodyazhnyy,也许我们以不同的方式定义“安全性”。他写了“ RELATIVE secure”。我相信我的方法比做的更安全curl -s https://get.sdkman.io | bash && sdk install kotlin。自己生成.deb程序包时,我直接从上游获得程序包,而没有中间人(sdkman)。因此,我认为它更安全。顺便说一下,当前形式的方法缺少全自动(包括安全性)更新,但是进一步自动化它并不困难。
Des Nerger '17

1
@DesNerger好的,从上游获取它是可以的,但是事实是:1)您没有提到zip包的来源;2)您的答案中零提及安全性;它只是谈论您制作的脚本。一切都很酷,但是该网站是问答型,因此您必须遵守特定格式。OP问了一件事,您提供了一个脚本,但没有说明它与原始问题的关系。不要沮丧,只需编辑您的答案,您就可以在其中添加评论内容。
Sergiy Kolodyazhnyy

1
@DrBeco,他们通常在此发布:github.com/JetBrains/kotlin/releases/latest
Des Nerger '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.