Menginstal Kotlin dengan aman, dengan tanda tangan paket, pembaruan otomatis dll

10

Kotlin mendapatkan perhatian luas sebagai bahasa pemrograman yang hebat, dan sekarang secara resmi didukung misalnya untuk pengembangan Android. Tetapi opsi yang saya lihat untuk menginstalnya tidak jelas tentang masalah keamanan. Saya tidak tahu apakah sdkman memeriksa (atau bahkan mendukung) tanda tangan pada paket, saya tidak tahu apakah secara otomatis melacak pembaruan keamanan di Kotlin dan paket yang diinstal lainnya (seperti apt-get lakukan), saya tidak tahu seberapa besar instalasi akan menjadi, dll.

Jadi ringkasnya

Apakah ada pendekatan instalasi untuk Kotlin yang relatif aman (dengan tanda tangan paket, pembaruan otomatis dll)?

Misalnya, apakah ada PPA untuk itu? (Apakah ada orang yang bekerja untuk mengemasnya untuk Debian / Ubuntu?).

Atau apakah sdkman memiliki properti yang diperlukan?

Atau ada pendekatan lain?

Pembaruan: Saya melihat bahwa ubuntu-make (umake) adalah sebuah opsi. Untuk IDEA dan Kotlin, tampaknya versi dari ppa mereka masih diperlukan, seperti yang dijelaskan di Ubuntu Make 16.03 Dirilis Dengan Eclipse JEE Dan IntelliJ IDEA EAP Dukungan, Lebih Lanjut

Tetapi saya terkejut bahwa saya tidak dapat dengan mudah menemukan informasi tentang aspek keamanan umake, dan tampaknya mereka belum melakukan pembaruan ( memperbarui alat · Edisi # 74 ), jadi pertanyaan saya tetap terbuka.

nealmcb
sumber
@Alban Terima kasih telah mendorong saya untuk mengklarifikasi pertanyaan yang mendasarinya.
nealmcb

Jawaban:

2

Kompiler Kotlin baris perintah yang dikembangkan oleh JetBrains dapat diinstal sebagai paket snap di semua versi Ubuntu yang saat ini didukung. Untuk menginstalnya, buka terminal dan ketik:

sudo apt install snapd  
sudo snap install kotlin --classic 

Alat yang tersedia:

  • kotlinc
  • kotlinc-jvm
  • kotlinc-js
  • kotlin-dce-js

Contoh

  1. Buat aplikasi sederhana di Kotlin yang ditampilkan Hello, World!. Buat file baru dengan izin yang dapat dieksekusi yang disebut hello.kt dengan yang berikut:

    fun main(args: Array<String>) {
        println("Hello, World!")
    }
  2. Kompilasi aplikasi menggunakan kompiler Kotlin.

    kotlinc hello.kt -include-runtime -d hello.jar  
  3. Jalankan aplikasi.

    java -jar hello.jar
karel
sumber
1
Ahh terima kasih! Tampaknya juga dengan 14,04, Anda perlu menginstal backport baru dari snapd ke trusty: sudo apt install snapd sebelum Anda dapat menjalankan snap.
nealmcb
Pasang snap bekerja dengan baik. Namun "manusia tidak" tidak bekerja. Ketika saya melihat di bawah / snap / kotlin saya melihat banyak halaman manual. Haruskah snap juga menginstal ini?
steven smith
kotlin -hberfungsi baik untuk pemula. The -hpilihan juga bekerja untuk semua terkunci. Setelah itu saya menggunakan tutorial dan dokumentasi online.
karel
1
Terima kasih. Saya baru saja menemukan bahwa man install juga bug # 1575593 untuk snap.
steven smith
Terima kasih! Tautan untuk status bug halaman manual terbaru untuk snap: bugs.launchpad.net/snapd/+bug/1575593
nealmcb
2

Saya tidak tahu tentang umake. Saya baru saja menulis skrip bash kecil untuk menghasilkan paket deb minimal dari arsip zip yang didistribusikan.

Buat file kotlinc-deb baru :

#!/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}

Dan kemudian jalankan:

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

Setelah itu, Anda dapat menginstal kotlinc_1.1.51_all.debpaket deb yang dihasilkan seperti biasa.

Des Nerger
sumber
Terima kasih! Itu terdengar seperti titik awal yang bagus untuk paket Debian nyata, atau setidaknya ppa Ubuntu, yang beberapa organisasi dapat berkomitmen untuk terus diperbarui. Tetapi tujuan utama saya adalah untuk menginstalnya dengan cara yang tetap dan aman, dan yang membutuhkan tanda tangan dan pendekatan pengemasan yang didukung oleh komitmen yang dapat dipercaya dan kredibel untuk tetap mutakhir.
nealmcb
1
OK, jawaban ini memberi cara untuk menginstal . Pertanyaan OP adalah "Apakah ada pendekatan instalasi untuk Kotlin yang relatif aman". Jadi ... bagaimana tepatnya membuat paket tempat tidur dari file zip aman? Jawaban ini tidak membahas bagian itu. Tidak ingin mengundurkan diri, tetapi jawabannya tidak menjawab inti pertanyaan
Sergiy Kolodyazhnyy
@SergiyKolodyazhnyy, mungkin kita mendefinisikan "keamanan" secara berbeda. Dia menulis "RELATIVE secure". Dan saya percaya bahwa pendekatan saya lebih aman daripada melakukan curl -s https://get.sdkman.io | bash && sdk install kotlin. Saat membuat paket .deb sendiri, saya mendapatkan paket langsung dari hulu, tanpa perantara (sdkman). Jadi saya melihatnya lebih aman. Tentu saja pendekatan dalam bentuk saat ini tidak memiliki pembaruan sepenuhnya otomatis (termasuk aman) tetapi tidak akan sulit untuk mengotomatiskannya lebih lanjut.
Des Nerger
1
@DesNerger OK, mendapatkannya dari hulu tidak masalah, namun faktanya adalah 1) Anda gagal menyebutkan dari mana paket zip berasal; 2) tidak ada menyebutkan keamanan dalam jawaban Anda; itu hanya berbicara tentang skrip yang Anda buat. Ini keren dan semuanya, tetapi situs ini adalah tipe tanya-jawab, jadi Anda harus mematuhi format tertentu. OP menanyakan satu hal, Anda memberikan skrip dan tidak ada penjelasan bagaimana hubungannya dengan pertanyaan asli. Jangan frustrasi, cukup edit jawaban Anda, Anda mungkin dapat memasukkan hal-hal dari komentar Anda di sana.
Sergiy Kolodyazhnyy
1
@DrBeco, mereka biasanya menerbitkannya di sana: github.com/JetBrains/kotlin/releases/latest
Des Nerger