Kotlin'i güvenli bir şekilde, paket imzaları, otomatik güncelleme vb.


10

Kotlin , harika bir programlama dili olarak yaygın bir ilgi görüyor ve artık resmi olarak örneğin Android geliştirme için destekleniyor. Ancak yüklemek için gördüğüm seçenekler güvenlik sorunları hakkında net değil. Eğer bilmiyorum sdkman otomatik, ben ne kadar büyük bilmiyorum (apt-get yaptığı gibi) KOTLIN ve diğer yüklü paketler üzerinde güvenlik güncelleştirmelerini izler eğer paketleri çekleri (hatta destekleri) imzalar, bilmiyorum kurulum olacak, vb.

Özetle

Kotlin için nispeten güvenli bir kurulum yaklaşımı var mı (paket imzaları, otomatik güncelleme vb.)?

Örneğin, bunun için bir PPA var mı? (Debian / Ubuntu için paketlemeye çalışan var mı?).

Yoksa sdkman gerekli özelliklere sahip mi?

Yoksa başka bir yaklaşım var mı?

Güncelleme: Görüyorum ubuntu-marka (umake) bir seçenektir. IDEA ve Kotlin için, Ubuntu Make 16.03 Eclipse JEE ve IntelliJ IDEA EAP Desteği ile Serbest Bırakıldığı gibi, ppa'larının versiyonuna hala ihtiyaç duyulduğu anlaşılıyor.

Ancak umake'in güvenlik yönleri hakkında herhangi bir bilgi bulamadığım için şaşırdım ve henüz güncelleme yapmadıkları görünüyor ( güncelleme araçları · Sayı # 74 ), bu yüzden sorum açık kalıyor.


@Alban Alttaki soruyu açıklığa kavuşturmam için beni teşvik ettiğin için teşekkürler
nealmcb

Yanıtlar:


2

JetBrains tarafından geliştirilen komut satırı Kotlin derleyicisi, Ubuntu'nun şu anda desteklenen tüm sürümlerine bir ek paket olarak yüklenebilir. Takmak için terminali açın ve şunu yazın:

sudo apt install snapd  
sudo snap install kotlin --classic 

Mevcut araçlar:

  • kotlinc
  • kotlinc-jvm
  • kotlinc-js
  • KOTLIN-DCE-js

Misal

  1. Görüntülenen Kotlin basit bir uygulama oluşturun Hello, World!. Aşağıdakilerle hello.kt adlı yürütülebilir izne sahip yeni bir dosya oluşturun:

    fun main(args: Array<String>) {
        println("Hello, World!")
    }
    
  2. Kotlin derleyicisini kullanarak uygulamayı derleyin.

    kotlinc hello.kt -include-runtime -d hello.jar  
  3. Uygulamayı çalıştırın.

    java -jar hello.jar

1
Ahh teşekkürler! Ayrıca, 14.04 ile, snapd'nin yeni backport'unu güvenilir bir şekilde yüklemeniz gerekiyor: snap'i sudo apt install snapd çalıştırmadan önce.
nealmcb

Snap install iyi çalıştı. Ancak "insan" işe yaramıyor. / Snap / kotlin altına baktığımda bir sürü adam sayfası görüyorum. Snap bunları da yüklemeli miydi?
steven smith

kotlin -hyeni başlayanlar için Tamam çalışıyor. Bu -hseçenek aynı zamanda tüm enstantaneler için de geçerlidir. Bundan sonra çevrimiçi öğreticiler ve belgeler kullanıyorum.
karel

1
Teşekkürler. Ben sadece adam yüklemek de hata # 1575593 olduğunu keşfetti.
steven smith

Teşekkürler! Snap için adam sayfası hata en son durumu için bağlantı: bugs.launchpad.net/snapd/+bug/1575593
nealmcb

2

Umake hakkında bir fikrim yok. Ben sadece dağıtılmış zip arşivinden minimal bir deb paketi oluşturmak için küçük bir bash betiği yazdım.

Yeni bir kotlinc-deb dosyası oluşturun:

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

Ve sonra çalıştırın:

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

Bundan sonra, üretileni kotlinc_1.1.51_all.debnormal bir deb paketi olarak yükleyebilirsiniz .


Teşekkürler! Bu, gerçek bir Debian paketi veya en azından bir kuruluşun güncellenmeye devam edebileceği bir Ubuntu ppa için harika bir başlangıç ​​noktası gibi görünüyor. Ama asıl amacım onu ​​güvenli ve güvenli bir şekilde kurmak ve hem güncel hem de güvenilir tutmak için güvenilir ve güvenilir bir taahhütle desteklenen bir paketleme yaklaşımı gerektiriyor.
nealmcb

1
Tamam, bu cevap yüklemek için bir yol sunuyor . OP'nin sorusu "Kotlin için nispeten güvenli bir kurulum yaklaşımı var mı?" Peki ... nasıl tam olarak zip dosyası güvenli bir yatak paketi yapmak? Bu cevap bu kısmı ele almıyor. Aşağı indirmek istemiyorum, ancak cevap sorunun özünü ele almıyor
Sergiy Kolodyazhnyy

@SergiyKolodyazhnyy, belki "güvenlik" i farklı tanımlıyoruz. "BAĞIL güvenli" yazdı. Ve yaklaşımımın yapmaktan daha güvenli olduğuna inanıyorum curl -s https://get.sdkman.io | bash && sdk install kotlin. Bir .deb paketi kendim oluştururken, bir orta adam (sdkman) olmadan doğrudan bir yukarı akıştan bir paket alıyorum. Böylece daha güvenli görüyorum. Çünkü mevcut formdaki yaklaşım tam otomatik (güvenli dahil) güncellemelerden yoksundur, ancak daha fazla otomatikleştirmek zor olmayacaktır.
Des Nerger

1
@DesNerger Tamam, yukarı akıştan almak tamam, ancak gerçek şu ki 1) zip paketinin nereden geldiğinden bahsetmediniz; 2) Cevabınızda güvenlikten sıfır bahsedilir; sadece sizin yaptığınız senaryodan bahsediyor. Her şey harika, ancak site soru-cevap türüdür, bu nedenle belirli bir formata uymanız gerekir. OP bir şey sordu, bir senaryo sağladınız ve orijinal sorularla nasıl bir ilişki kurduğuna dair hiçbir açıklama yapmadı. Sinirlenmeyin, sadece cevabınızı düzenleyin, muhtemelen oradaki yorumunuzdan bir şeyler ekleyebilirsiniz.
Sergiy Kolodyazhnyy

1
@DrBeco, genellikle orada yayınlarlar: github.com/JetBrains/kotlin/releases/latest
Des Nerger
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.