Snapcraft는 무엇입니까?


16

나는 Raspberry Pi 2 장치에서 스냅 우분투 코어를 시도해 왔으며 Snapcraft를 사용하여 개발할 수 있다고 들었습니다. 이제 Ubuntu 16.04 및 기타 배포판에 대해 데스크톱 및 서버에서 스냅을 사용할 수 있다고 들었습니다.

Snapcraft 란 무엇이며 어떻게 사용합니까?

답변:


27

Snapcraft는 여러 Linux 배포판을위한 패키지 를 쉽게 생성 (크래프트)하기 위해 명령 아래 번들로 제공되는 도구 모음입니다 . 이 .snap 패키지에는 일반적으로 자체 포함 된 앱이 포함되어 있으며 안전한 격리 기능을 제공하며 Ubuntu Software Store에서 또는 명령을 통해 수동으로 설치할 수 있습니다 .snapcraftsnap install <snap-name>.snap

간단히 말해서 개발자는 일반 도구를 사용하여 코드를 작성하고 Snapcraft가 배포를 위해 코드를 관리하도록합니다. Snapcraft는 또한 개발자 가 기존 앱을 모든 스냅 지원 Linux 플랫폼으로 이식 할 수 있도록하는 데 탁월 합니다.

스냅 크래프트 :

  • 지능적 임 : 원격 소스에서 다양한 소프트웨어 ( 부품 )를 가져 와서 기능하는 데 필요한 모든 종속성을 포함하는 최종 .snap 패키지로 조립하고 조립 합니다.
  • 레시피가 필요합니다 : 패키지를 만드는 데 필요한 부품플러그인snapcraft.yaml 을 지정 하는 파일에 의존 합니다
  • 플러그인으로 확장 가능 합니다. 광범위한 앱 빌드를 제공하는 가장 일반적인 빌드 시스템 플러그인 세트와 함께 제공되지만 새로운 플러그인으로 쉽게 확장 할 수 있습니다 .

3 분 Snapcraft 투어

우분투에 Snapcraft 설치

Snapcraft를 사용하려면 Ubuntu 16.04 LTS가 필요합니다. Ctrl+ Alt+ 로 터미널을 열고 t다음 명령으로 Snapcraft를 설치하십시오.

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

다른 배포판을 사용 하는 경우 대체 설치 지침을 확인하십시오.>

시운전 Snapcraft

다음 예제에서는 붙여 넣기 및 공유 할 수있는 서비스가 포함 된 패키지를 만듭니다. 완료되면 테스트 목적으로 Snappy 장치에 수동으로 설치하거나 다른 사용자를 위해 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. : 원격 Github 저장소에서 필요한 gopaste 부분의 코드를 가져옵니다.
  2. 빌드 : 로컬로 gopaste를 빌드합니다 .
  3. 단계 : 빌드 후 파트는 단일 디렉토리 트리 인 "스테이징 영역"에 배치됩니다.
  4. 스냅 : 준비 영역의 조립 된 부품에서 최종 .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!"
Ismael Miguel

1
나는 여기서 David에게 동의 할 것입니다.
dholbach

1
코드가 이제 Github에 있으므로 bzr 부분은 동등한 git 명령으로 대체되어야합니다.
lapisdecor

1
또한 bzr이 아닌 git을 사용하는 경우 git 및 gcc를 설치해야합니다.
lapisdecor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.