การติดตั้ง Kotlin อย่างปลอดภัยด้วยลายเซ็นของแพ็คเกจการอัพเดทอัตโนมัติ ฯลฯ


10

Kotlinได้รับความสนใจอย่างกว้างขวางว่าเป็นภาษาการเขียนโปรแกรมที่ยอดเยี่ยมและขณะนี้ได้รับการสนับสนุนอย่างเป็นทางการเช่นสำหรับการพัฒนา Android แต่ตัวเลือกที่ฉันเห็นสำหรับการติดตั้งยังไม่ชัดเจนเกี่ยวกับปัญหาด้านความปลอดภัย ฉันไม่รู้ว่าsdkmanตรวจสอบ (หรือแม้กระทั่งสนับสนุน) ลายเซ็นบนแพ็คเกจฉันไม่รู้ว่ามันติดตามการอัพเดทความปลอดภัยบน Kotlin และแพ็คเกจอื่น ๆ ที่ติดตั้งโดยอัตโนมัติ (เช่น apt-get) หรือไม่ การติดตั้งเป็นไปได้ ฯลฯ

ดังนั้นเพื่อสรุป

มีวิธีการติดตั้งสำหรับ Kotlin ที่ค่อนข้างปลอดภัย (พร้อมลายเซ็นของแพ็คเกจอัพเดทอัตโนมัติ ฯลฯ ) หรือไม่?

เช่นมี PPA หรือไม่ (มีใครบ้างที่ทำงานกับแพ็คเกจสำหรับ Debian / Ubuntu หรือไม่)

sdkman หรือมีคุณสมบัติที่จำเป็น?

หรือมีวิธีอื่นบ้าง

Update:ฉันเห็นว่าubuntu-make (umake) เป็นตัวเลือก สำหรับ IDEA และ Kotlin ดูเหมือนว่ายังต้องการเวอร์ชั่นจาก ppa ตามที่อธิบายไว้ในUbuntu Make 16.03 ที่ออกโดย Eclipse JEE และ IntelliJ IDEA EAP Support เพิ่มเติม

แต่ฉันประหลาดใจที่ฉันไม่สามารถหาข้อมูลใด ๆ เกี่ยวกับความปลอดภัยของ umake ได้อย่างง่ายดายและดูเหมือนว่าพวกเขายังไม่ได้ทำการอัปเดต ( อัปเดตเครื่องมือ·ฉบับที่ 74 ) ดังนั้นคำถามของฉันยังคงเปิดอยู่


@Alban ขอบคุณที่ผลักดันฉันเพื่อชี้แจงคำถามพื้นฐาน
nealmcb

คำตอบ:


2

คอมไพเลอร์ Kotlin บรรทัดคำสั่งที่พัฒนาโดย JetBrains สามารถติดตั้งเป็นแพ็คเกจ snap ใน Ubuntu ทุกรุ่นที่รองรับในปัจจุบัน หากต้องการติดตั้งให้เปิดเทอร์มินัลแล้วพิมพ์:

sudo apt install snapd  
sudo snap install kotlin --classic 

เครื่องมือที่มีอยู่:

  • kotlinc
  • 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 คุณจะต้องติดตั้ง backport ใหม่ของ snapd เพื่อเชื่อถือ: sudo apt install snapd ก่อนที่คุณจะสามารถเรียกใช้ snap
nealmcb

การติดตั้ง Snap ทำงานได้ดี อย่างไรก็ตาม "คนทำ" ไม่ทำงาน เมื่อฉันดูใต้ / snap / kotlin ฉันเห็นหน้าคนมากมาย สแนปควรติดตั้งสิ่งเหล่านี้ด้วยหรือไม่
steven smith

kotlin -hทำงานได้ดีสำหรับผู้เริ่ม -hตัวเลือกยังสามารถใช้ได้กับทุก snaps หลังจากนั้นฉันใช้แบบฝึกหัดออนไลน์และเอกสารประกอบ
karel

1
ขอบคุณ ฉันเพิ่งค้นพบว่าการติดตั้งคนนั้นยังเป็นข้อผิดพลาด # 1575593 สำหรับ snap
steven smith

ขอบคุณ! ลิงก์สำหรับสถานะล่าสุดของบั๊ก man page สำหรับ snap: bugs.launchpad.net/snapd/+bug/1575593
nealmcb

2

ฉันไม่รู้เกี่ยวกับ umake ฉันเพิ่งเขียนสคริปต์ทุบตีเล็ก ๆ น้อย ๆ เพื่อสร้างแพ็คเกจ deb ขั้นต่ำจากไฟล์ zip แบบกระจาย

สร้างไฟล์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 ปกติ


ขอบคุณ! ฟังดูเหมือนเป็นจุดเริ่มต้นที่ดีสำหรับแพ็คเกจเดเบียนจริง ๆ หรืออย่างน้อย Ubuntu ppa ซึ่งบางองค์กรสามารถให้การปรับปรุงได้ แต่เป้าหมายหลักของฉันคือการติดตั้งในลักษณะที่ปลอดภัยและต้องใช้ทั้งลายเซ็นและวิธีการบรรจุภัณฑ์ที่ได้รับการสนับสนุนจากคำมั่นสัญญาที่น่าเชื่อถือและน่าเชื่อถือเพื่อให้ทันสมัย
nealmcb

1
ตกลงคำตอบนี้จะช่วยให้วิธีการติดตั้ง คำถามของ OP คือ "มีวิธีการติดตั้งสำหรับ Kotlin ที่ค่อนข้างปลอดภัยหรือไม่" ดังนั้น ... วิธีการทำแพคเกจเตียงจากไฟล์ zip ปลอดภัยหรือไม่ คำตอบนี้ไม่ได้อยู่ส่วนนั้น ไม่ต้องการลงคะแนน แต่คำตอบไม่ได้ตอบคำถามหลักของคำถาม
Sergiy Kolodyazhnyy

@SergiyKolodyazhnyy บางทีเราอาจนิยาม "ความปลอดภัย" แตกต่างกัน เขาเขียนว่า "ปลอดภัย RELATIVE" curl -s https://get.sdkman.io | bash && sdk install kotlinและผมเชื่อว่าวิธีการของฉันมีความปลอดภัยมากกว่าการทำ เมื่อสร้างแพ็คเกจ. deb ด้วยตัวเองฉันจะได้รับแพ็คเกจโดยตรงจากอัพสตรีมโดยไม่มีคนกลาง (sdkman) ดังนั้นฉันเห็นว่ามันปลอดภัยกว่า วิธีการในรูปแบบปัจจุบันขาดการอัปเดตอัตโนมัติ (รวมถึงการรักษาความปลอดภัย) อย่างสมบูรณ์ แต่มันก็ไม่ยากที่จะทำให้เป็นแบบอัตโนมัติต่อไป
Des Nerger

1
@DesNerger ตกลงรับจากต้นน้ำเป็น OK แต่ความจริงก็คือ 1) คุณล้มเหลวที่จะพูดถึงที่มาจากแพคเกจซิป; 2) คำตอบของคุณไม่มีการรักษาความปลอดภัย มันแค่พูดถึงสคริปต์ที่คุณทำ มันเจ๋งและทั้งหมด แต่เว็บไซต์เป็นประเภทคำถามคำตอบดังนั้นคุณต้องปฏิบัติตามรูปแบบเฉพาะ OP ถามสิ่งหนึ่งคุณให้สคริปต์และไม่มีคำอธิบายว่าเกี่ยวข้องกับคำถามเดิมอย่างไร อย่าหงุดหงิดเพียงแค่แก้ไขคำตอบของคุณคุณอาจรวมถึงสิ่งต่าง ๆ จากความคิดเห็นของคุณที่นั่น
Sergiy Kolodyazhnyy

1
@DrBeco พวกเขามักจะเผยแพร่ที่นั่น: github.com/JetBrains/kotlin/releases/latest
Des Nerger
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.