पैकेज हस्ताक्षर, ऑटो-अपडेट आदि के साथ सुरक्षित रूप से कोटलिन स्थापित करना


10

कोटलिन एक बेहतरीन प्रोग्रामिंग लैंग्वेज के रूप में व्यापक रूप से ध्यान आकर्षित कर रहा है, और अब इसे एंड्रॉइड डेवलपमेंट के लिए आधिकारिक तौर पर सपोर्ट किया गया है। लेकिन जो विकल्प मैं इसे स्थापित करने के लिए देख रहा हूं, वे सुरक्षा मुद्दों के बारे में स्पष्ट नहीं हैं। मुझे नहीं पता कि sdkman जाँच करता है (या यहाँ तक कि संकुल पर हस्ताक्षर का समर्थन करता है), मुझे नहीं पता कि क्या यह स्वचालित रूप से Kotlin और अन्य स्थापित पैकेजों पर सुरक्षा अपडेट ट्रैक करता है (जैसे apt-get does), मुझे नहीं पता कि यह कितना बड़ा है स्थापित होने जा रहा है, आदि।

इसलिए योग करने के लिए

क्या कोटलिन के लिए एक इंस्टॉलेशन अप्रोच है जो अपेक्षाकृत सुरक्षित है (पैकेज हस्ताक्षर, ऑटो-अपडेट आदि के साथ)?

जैसे, क्या इसके लिए पीपीए है? (क्या कोई इसे डेबियन / उबंटू के लिए पैकेज करने के लिए भी काम कर रहा है?)।

या sdkman में आवश्यक गुण हैं?

या कुछ और दृष्टिकोण है?

अपडेट: मैं देखता हूं कि ubuntu-make (umake) एक विकल्प है। आईडीईए और कोटलिन के लिए, ऐसा लगता है कि उनके पीपा से संस्करण अभी भी आवश्यक है, जैसा कि उबंटू मेक में समझाया गया था 16.03 एक्लिप्स जेईई और इंटेलीज आईडीईए ईएपी समर्थन के साथ जारी किया गया था, और

लेकिन मुझे आश्चर्य है कि मैं umake के सुरक्षा पहलुओं पर कोई जानकारी आसानी से नहीं पा सकता हूं, और ऐसा लगता है कि वे अभी तक अपडेट नहीं करते हैं ( टूल # अंक # 74 अपडेट कर रहे हैं ), इसलिए मेरा प्रश्न खुला है।


@ आलबान ने मुझे अंतर्निहित प्रश्न को स्पष्ट करने के लिए धन्यवाद दिया।
nealmcb

जवाबों:


2

JetBrains द्वारा विकसित कमांड लाइन Kotlin संकलक को Ubuntu के सभी वर्तमान में समर्थित संस्करणों में एक स्नैप पैकेज के रूप में स्थापित किया जा सकता है। इसे स्थापित करने के लिए, टर्मिनल खोलें और टाइप करें:

sudo apt install snapd  
sudo snap install kotlin --classic 

उपलब्ध उपकरण:

  • kotlinc
  • kotlinc-JVM
  • kotlinc-js
  • kotlin-DCE-js

उदाहरण

  1. प्रदर्शित करता है कि कोटलिन में एक सरल अनुप्रयोग बनाएँ Hello, World!। निम्नलिखित के साथ निष्पादन योग्य अनुमति नामक एक नई फ़ाइल बनाएँ:

    fun main(args: Array<String>) {
        println("Hello, World!")
    }
  2. कोटलिन कंपाइलर का उपयोग करके एप्लिकेशन को संकलित करें।

    kotlinc hello.kt -include-runtime -d hello.jar  
  3. एप्लिकेशन चलाएँ।

    java -jar hello.jar

1
आह धन्यवाद! यह भी लगता है कि 14.04 के साथ, आपको भरोसेमंद रूप से स्नैपडील का नया बैकपॉट स्थापित करने की आवश्यकता है: sudo apt install snapd इससे पहले कि आप स्नैप चला सकें।
nealmcb

स्नैप इंस्टॉल ने ठीक काम किया। हालांकि "आदमी करता है" काम नहीं करता है। जब मैं अंडर / स्नैप / कोटलिन देखता हूं तो मुझे मैन पेजों का एक गुच्छा दिखाई देता है। क्या स्नैप को भी स्थापित करना चाहिए था?
स्टीवन स्मिथ

kotlin -hशुरुआत के लिए ठीक काम करता है। -hविकल्प भी सभी स्नैप के लिए काम करता है। उसके बाद मैं ऑनलाइन ट्यूटोरियल और प्रलेखन का उपयोग करता हूं।
कर्ल

1
धन्यवाद। मुझे अभी पता चला है कि स्नैप के लिए आदमी इंस्टॉल भी बग # 1575593 है।
स्टीवन स्मिथ

धन्यवाद! स्नैप के लिए मैन पेज बग की नवीनतम स्थिति के लिए लिंक: Bugs.launchpad.net/snapd/+bug/1575593
nealmcb

2

मुझे उम्मेक के बारे में पता नहीं है। मैंने वितरित ज़िप संग्रह से न्यूनतम डेब्यू पैकेज उत्पन्न करने के लिए थोड़ी सी बैश स्क्रिप्ट लिखी है।

एक नई 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सामान्य डिबेट पैकेज के रूप में।


धन्यवाद! यह वास्तविक डेबियन पैकेज या कम से कम एक उबंटू ppa के लिए एक महान शुरुआती बिंदु की तरह लगता है, जिसे कुछ संगठन अपडेट रखने के लिए प्रतिबद्ध कर सकते हैं। लेकिन मेरा मुख्य लक्ष्य इसे एक तरह से स्थापित करना है जो सुरक्षित है और यह सुरक्षित है, और इसके लिए हस्ताक्षर और एक पैकेजिंग दृष्टिकोण दोनों की आवश्यकता है जो इसे भरोसेमंद और विश्वसनीय प्रतिबद्धता के साथ अद्यतित रखता है।
nealmcb

1
ठीक है, यह उत्तर स्थापित करने का एक तरीका है । ओपी का सवाल था "क्या कोटलिन के लिए एक इंस्टॉलेशन दृष्टिकोण है जो अपेक्षाकृत सुरक्षित है"। तो ... कैसे बिल्कुल ज़िप फ़ाइल से बाहर एक बिस्तर पैकेज सुरक्षित बना रही है? यह उत्तर उस भाग को संबोधित नहीं करता है। पतन नहीं करना चाहते, लेकिन जवाब सवाल के मूल को संबोधित नहीं कर रहा है
Sergiy Kolodyazhnyy

@SergiyKolodyazhnyy, शायद हम "सुरक्षा" को अलग तरह से परिभाषित करते हैं। उन्होंने लिखा "विश्वसनीय सुरक्षित"। और मुझे विश्वास है कि मेरा दृष्टिकोण करने की तुलना में अधिक सुरक्षित है curl -s https://get.sdkman.io | bash && sdk install kotlin। जब स्वयं एक .deb पैकेज बनाते हैं, तो मुझे एक मिडल मैन (sdkman) के बिना, एक अपस्ट्रीम से सीधे पैकेज मिलता है। इस प्रकार मैं इसे अधिक सुरक्षित देखता हूं। मौजूदा रूप में दृष्टिकोण के अभाव में पूरी तरह से स्वचालित (incl। Secure) अपडेट का अभाव है, लेकिन इसे आगे स्वचालित करना मुश्किल नहीं होगा।
डेस नेरगर 8

1
@DesNerger OK, इसे अपस्ट्रीम से प्राप्त करना ठीक है, हालाँकि तथ्य यह है कि 1) आप यह उल्लेख करने में विफल रहे कि जिप पैकेज कहाँ से आता है; 2) आपके उत्तर में सुरक्षा का शून्य उल्लेख है; यह केवल आपके द्वारा बनाई गई स्क्रिप्ट के बारे में बात करता है। यह शांत और सभी है, लेकिन साइट प्रश्न-उत्तर प्रकार है, इसलिए आपको विशिष्ट प्रारूप का पालन करना होगा। ओपी ने एक बात पूछी, आपने एक स्क्रिप्ट प्रदान की और कोई स्पष्टीकरण नहीं दिया कि यह मूल प्रश्नों से कैसे संबंधित है। निराश मत हो, बस अपना जवाब संपादित करें, आप शायद अपनी टिप्पणी से सामान शामिल कर सकते हैं।
सर्गी कोलोडियाज़नी

1
@DrBeco, वे आमतौर पर इसे वहां प्रकाशित करते हैं: github.com/JetBrains/kotlin/releases/latest
देस नेरजेर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.