Snapcraft คืออะไร


16

ฉันลองใช้ core Ubuntu เร็ว ๆ บนอุปกรณ์ Raspberry Pi 2 และฉันได้ยินมาว่าฉันสามารถใช้ Snapcraft เพื่อพัฒนามันได้ ตอนนี้ฉันได้ยินมาว่า snaps นั้นมีอยู่บนเดสก์ท็อปและเซิร์ฟเวอร์สำหรับ Ubuntu 16.04 และ distros อื่น ๆ

Snapcraft คืออะไรและฉันจะใช้ได้อย่างไร

คำตอบ:


27

Snapcraft เป็นชุดเครื่องมือที่รวมอยู่ภายใต้snapcraftคำสั่งเพื่อสร้างแพ็คเกจ (ยาน) สำหรับการกระจาย Linux หลาย ๆอย่างได้อย่างง่ายดายแพคเกจสำหรับลินุกซ์หลาย แพ็คเกจ. snap เหล่านี้มักจะมีแอพที่มีในตัวให้แยกอย่างปลอดภัยและสามารถติดตั้งได้จาก Ubuntu Software Store หรือด้วยตนเองผ่านsnap install <snap-name>.snapคำสั่ง

โดยสรุปในฐานะนักพัฒนาคุณจะต้องเขียนโค้ดโดยใช้เครื่องมือปกติของคุณและให้ Snapcraft ดูแลการประกอบมันเพื่อการจัดจำหน่าย Snapcraft ยังเก่งในการเปิดใช้งานพอร์ตผู้พัฒนาปพลิเคชันที่มีอยู่ของพวกเขาไปยังสแนปที่เปิดใช้งานแพลตฟอร์มลินุกซ์

Snapcraft:

  • มีความฉลาด : ดึงข้อมูลสร้างและประกอบชิ้นส่วนซอฟต์แวร์ที่หลากหลาย ( ชิ้นส่วน ) จากแหล่งข้อมูลระยะไกลไปยังแพ็คเกจ. snap ขั้นสุดท้ายซึ่งมีการพึ่งพาทั้งหมดที่จำเป็นในการใช้งาน
  • ต้องการสูตร : มันอาศัยsnapcraft.yamlไฟล์ที่ระบุชิ้นส่วนและปลั๊กอินที่จำเป็นในการสร้างแพคเกจ
  • สามารถขยายได้ด้วยปลั๊กอิน ในขณะที่มันมาพร้อมกับชุดของที่สุดปลั๊กอินร่วมกันสร้างระบบเพื่อรองรับความหลากหลายของแอปสร้างก็สามารถขยายได้อย่างง่ายดายกับคนใหม่

ทัวร์ Snapcraft 3 นาที

ติดตั้ง Snapcraft บน Ubuntu

คุณจะต้องใช้ Ubuntu 16.04 LTS เพื่อใช้ Snapcraft เปิด terminal กับCtrl+ Alt+ tและเพียงแค่ติดตั้ง Snapcraft ด้วยคำสั่งนี้

sudo apt install snapcraft
sudo apt install build-essential  # Optional, but useful for different builds

หากคุณกำลังใช้ distro อื่น ตรวจสอบคำแนะนำการติดตั้งทางเลือก>

ทดสอบไดรฟ์ Snapcraft

ตัวอย่างต่อไปนี้สร้างแพ็คเกจที่มีบริการที่ให้คุณวางและแบ่งปัน เมื่อเสร็จแล้วคุณสามารถติดตั้งด้วยตนเองบนอุปกรณ์เร็วเพื่อทดสอบหรืออัปโหลดไปยัง Store สำหรับผู้ใช้รายอื่น

ก่อนอื่นเราเปิดเทอร์มินัลแล้วดาวน์โหลดตัวอย่างจากที่เก็บตัวอย่าง:

sudo apt install git
git clone https://github.com/ubuntu-core/snapcraft.git
cd snapcraft/demos/gopaste

ขอให้สังเกต snapcraft.yamlไฟล์ในไดเรกทอรีนั้นซึ่งระบุบริการและชิ้นส่วนที่จำเป็นในการรวบรวม. snap สุดท้าย คุณสามารถเลือกที่จะตรวจสอบด้วยโปรแกรมแก้ไขข้อความ

ตอนนี้รันsnapcraftคำสั่งบนเทอร์มินัล สิ่งนี้จะทำให้คำสั่งย่อย snapcraft ทั้งหมดทำงานตามลำดับเพื่อสร้างชิ้นส่วนและใส่ผลลัพธ์ในแพ็คเกจ. snap ขั้นสุดท้าย ในระหว่างการพัฒนาโดยปกติคุณจะรันขั้นตอนแยกต่างหากจนกว่าคุณจะมั่นใจว่าการสร้างและการประกอบทั้งหมด

$ snapcraft 
Pulling gopaste 
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go get -t -d github.com/wisnij/gopaste/gopasted
Building gopaste 
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go build github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go install github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build cp -a /tmp/snapcraft/examples/gopaste/parts/gopaste/build/bin /tmp/snapcraft/examples/gopaste/parts/gopaste/install
Staging gopaste 
Snapping gopaste 
Generated 'gopaste_1.0_amd64.snap' snap

ในผลลัพธ์ของคำสั่งคุณสามารถดูขั้นตอนการ snapcraft ทำงานให้คุณ:

  1. ดึง : มันดึงรหัสจากส่วน gopaste ที่ต้องการจาก repo Github ระยะไกล
  2. สร้าง : มันสร้าง gopaste ในพื้นที่
  3. เวที : หลังจากการสร้างส่วนต่าง ๆ จะถูกใส่ลงในแผนผังไดเรกทอรีเดียว "พื้นที่จัดเตรียม"
  4. Snap : แพ็คเกจ. snap สุดท้ายถูกสร้างขึ้นจากชิ้นส่วนที่ประกอบในพื้นที่จัดเตรียม

หมายเหตุ:

  • คุณจะพบไฟล์ snap สุดท้ายเป็นgopaste_1.0_amd64.snap(สังเกตเห็นในกรณีของฉันฉันสร้างมันบนเดสก์ทอป amd64 ของฉันเช่นแพคเกจ Raspberry Pi 2 จะมี_armhfคำต่อท้ายสถาปัตยกรรม)
  • นอกจากนี้คุณยังสามารถเรียกใช้แต่ละคำสั่งที่ไม่ซ้ำกัน: snapcraft pull, snapcraft build, snapcraft stageหรือsnapcraft snap
  • ใช้snapcraft -hสำหรับภาพรวมอย่างรวดเร็วของคำสั่งทั้งหมดที่มี

และนั่นก็เพื่อดูว่า Snapcraft สามารถทำอะไรได้อย่างรวดเร็ว! เรียนรู้เพิ่มเติมเกี่ยวกับ Snapcraft>


9
ฉันขอขอบคุณความคิดเห็น แต่ในขณะที่ฉันไม่ได้เป็นหนึ่งในนักพัฒนา snapcraft ฉันยังไม่แน่ใจว่าการอธิบายว่าเครื่องมือสร้างสแนปช็อต Ubuntu คืออะไรและใช้งานอย่างไรบนไซต์ Ubuntu อาจเป็นสแปม
David Planella

การใช้ถ้อยคำในรายการฟีเจอร์ทำให้เกิดขึ้นกับฉัน และ"And that's it for a quick glimpse of what Snapcraft can do!"
อิสมาเอลมิเกล

1
ฉันจะเห็นด้วยกับเดวิดที่นี่
dholbach

1
ส่วน bzr ควรถูกแทนที่ด้วยคำสั่ง git ที่เทียบเท่าเนื่องจากขณะนี้โค้ดอยู่บน Github
lapisdecor

1
นอกจากนี้ในการทำเช่นนี้คุณต้องติดตั้ง git และ gcc หากคุณใช้ git ไม่ใช่ bzr
lapisdecor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.