forked from come-maiz/snapcraft.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
367 lines (330 loc) · 21.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
---
layout: default
---
<section class="row hero-row no-border">
<div class="wrapper">
<div class="five-col">
<h1 class="hero-row__heading">Snapcraft</h1>
<div class="five-col">
<img class="for-small" src="{{ site.asset_path }}e5388dd6-snaps-hero%403x-1.png?w=480" alt="" />
</div>
<p class="intro four-col">Package any app for any Linux desktop, server, cloud or device.</p>
<p><a class="button--primary" href="/create">Create a snap</a></p>
</div>
<div class="six-col prepend-one last-col">
<img class="not-for-small" src="{{ site.asset_path }}e5388dd6-snaps-hero%403x-1.png?w=600" alt="" />
</div>
</div>
</section>
<section class="row">
<div class="wrapper">
<div id="responsive-tabs" class="responsive-tabs twelve-col">
<h2 class="for-small muted-heading">Enable snaps</h2>
<ul class="responsive-tabs__nav twelve-col clearfix">
<li class="responsive-tabs__nav-item">
<a class="responsive-tabs__link" href="#responsive-tab-content-1" title="View Arch Linux instructions">
<img src="{{ site.asset_path }}e0b23092-archlinux.svg" class="responsive-tabs__image not-for-small" alt="Arch Linux logo" />
<p class="for-small">View Arch instructions</p>
</a>
</li>
<li class="responsive-tabs__nav-item">
<a class="responsive-tabs__link" href="#responsive-tab-content-2" title="View Debian instructions">
<img src="{{ site.asset_path }}2eafb62e-openlogo.svg" class="responsive-tabs__image not-for-small" alt="Debian logo" width="60" />
<p class="for-small">View Debian instructions</p>
</a>
</li>
<!--<li class="responsive-tabs__nav-item">
<a class="responsive-tabs__link" href="#responsive-tab-content-3" title="View Centos instructions">
<img src="{{ site.asset_path }}31bd1765-centos.svg" class="responsive-tabs__image not-for-small" alt="Centos logo" />
<p class="for-small">View Centos instructions</p>
</a>
</li>-->
<li class="responsive-tabs__nav-item">
<a class="responsive-tabs__link" href="#responsive-tab-content-4" title="View Fedora instructions">
<img src="{{ site.asset_path }}a7d04c56-Fedora_logo_and_wordmark.svg" class="responsive-tabs__image not-for-small" alt="Fedora logo" />
<p class="for-small">View Fedora instructions</p>
</a>
</li>
<li class="responsive-tabs__nav-item">
<a class="responsive-tabs__link" href="#responsive-tab-content-5" title="View Gentoo instructions">
<img src="{{ site.asset_path }}2235d892-gentoo.png" class="responsive-tabs__image not-for-small" alt="Gentoo logo" width="90" />
<p class="for-small">View Gentoo instructions</p>
</a>
</li>
<!--<li class="responsive-tabs__nav-item">
<a class="responsive-tabs__link" href="#responsive-tab-content-5" title="View Red hat instructions">
<img src="{{ site.asset_path }}f7002708-redhat.svg" class="responsive-tabs__image not-for-small" alt="Red hat logo" />
<p class="for-small">View Red hat instructions</p>
</a>
</li>-->
<li class="responsive-tabs__nav-item">
<a class="responsive-tabs__link" href="#responsive-tab-content-6" title="View Ubuntu instructions">
<img src="{{ site.asset_path }}887474d1-ubuntu.svg" class="responsive-tabs__image not-for-small" alt="Ubuntu logo" width="80" />
<p class="for-small">View Ubuntu instructions</p>
</a>
</li>
</ul>
<div id="responsive-tab-content-1" class="responsive-tab__content twelve-col clearfix">
<div class="eight-col">
<h3 class="accessibility-aid">Arch instructions</h3>
<p>Use one of the <a class="external" href="https://wiki.archlinux.org/index.php/AUR_helpers">AUR helpers</a> to install snapd. For example, with pacaur:</p>
<pre class="command-line"><code>pacaur -S snapd
# enable the snapd systemd service:
sudo systemctl enable –now snapd.service</code></pre>
</div>
</div>
<div id="responsive-tab-content-2" class="responsive-tab__content twelve-col clearfix">
<div class="eight-col">
<h3 class="accessibility-aid">Debian instructions</h3>
<p>On <a href="https://wiki.debian.org/DebianUnstable">Debian Sid</a>:</p>
<pre class="command-line"><code>sudo apt install snapd</code></pre>
</div>
</div>
<!--<div id="responsive-tab-content-3" class="twelve-col">
<h3 class="accessibility-aid">Centos instructions</h3>
<pre class="command-line"><code># install on Centos
sudo add-yum-repo https://rpm.snapcraft.io/path/
sudo yum install snapd</code></pre>
</div> -->
<div id="responsive-tab-content-4" class="responsive-tab__content twelve-col clearfix">
<div class="eight-col">
<h3 class="accessibility-aid">Fedora instructions</h3>
<p>On Fedora 23 or 24:</p>
<pre class="command-line"><code>sudo dnf copr enable zyga/snapcore.
sudo dnf install snapd
# enable the snapd systemd service:
sudo systemctl enable –now snapd.service
# SELinux support is in beta, so on Fedora 24 you currently have to:
sudo setenforce 0
# to persist, edit /etc/selinux/config to set SELINUX=permissive and reboot.</code></pre>
</div>
</div>
<div id="responsive-tab-content-5" class="responsive-tab__content twelve-col clearfix">
<div class="eight-col">
<h3 class="accessibility-aid">Gentoo</h3>
<p>Install <a href="https://github.com/zyga/snap-confine-gentoo">snap-confine.ebuild</a> then <a href="https://github.com/zyga/snapd-gentoo".>snapd.ebuild</a></p>
<pre class="command-line"><code># enable the snapd systemd service:
sudo systemctl enable –now snapd.service</code></pre>
</div>
</div>
<!--<div id="responsive-tab-content-5" class="twelve-col">
<h3 class="accessibility-aid">Red hat instructions</h3>
<pre class="command-line"><code># install on Red hat
sudo add-yum-repo https://rpm.snapcraft.io/path/
sudo yum install snapd</code></pre>
</div>-->
<div id="responsive-tab-content-6" class="responsive-tab__content twelve-col clearfix">
<div class="eight-col">
<h3 class="accessibility-aid">Ubuntu instructions</h3>
<p>On Ubuntu 16.04 LTS and flavors, snapd is usually installed by default. If needed:</p>
<pre class="command-line"><code>sudo apt install snapd</code></pre>
</div>
</div>
</div>
<div class="twelve-col align-center clearfix">
<p>Click for installation instructions, or <a href="http://github.com/snapcore/snapd">build from source</a>.</p>
</div>
</div>
</section>
<section class="row row-grey">
<div class="wrapper">
<div class="twelve-col no-margin-bottom">
<h2>A 'snap' is a universal Linux package</h2>
</div>
<div class="seven-col">
<p>Snaps work on any distribution or device. Snaps are faster to install, easier to create, safer to run, and they update automatically and transactionally so your app is always fresh and never broken.</p>
<p>The public collection of snaps includes the latest and best apps from GitHub and beyond, so you have the whole world of Linux apps at your fingertips. Take the tour below to experience 'hello world' as a snap, or jump to the <a href="/create">developer guide</a> to create your own snaps.</p>
</div>
<div class="five-col last-col">
<ul class="inline-logos">
<li class="inline-logos__item"><img src="{{ site.asset_path }}c24cb4b9-logo-intel.svg" class="inline-logos__image" alt="Intel logo" /></li>
<li class="inline-logos__item"><img src="{{ site.asset_path }}15214c8e-logo-arm.png" alt="ARM logo" /></li>
<li class="inline-logos__item"><img src="{{ site.asset_path }}47e40767-power8.png" class="inline-logos__image" alt="POWER logo" /></li>
</ul>
</div>
</div>
</section>
<section class="row">
<div class="wrapper">
<div class="eight-col">
<h2>The 'hello' world tour</h2>
<p>This tutorial assumes you have <a href="http://www.ubuntu.com/download/" class="external">Ubuntu 16.04 LTS</a> installed on your desktop, cloud, VM or server. You may need to <code>sudo apt install snapd</code> before continuing.</p>
</div>
<div class="eight-col">
<h3>Log in to the global snap store</h3>
<p>The snap store holds a public collection of snaps, and delivers them to clouds, devices and private infrastructure. <a class="external" href="https://login.ubuntu.com/+login">Sign-in</a> once from your device (you can require two-factor authentication for extra security) and then you will be able to fetch snaps on demand:</p>
<pre class="command-line"><code>$ snap login me@myself.com
Password: *********
2-factor: ******
Welcome!
</code></pre>
<p>Snaps don’t intrinsically depend on the Ubuntu store, that’s just what <code>snapd</code> does today, and we expect people will have different stores for their snaps in future.</p>
<p>The store contains both public and private snaps.</p>
<p>Anybody can publish a snap, but if you search the store you will only see snaps that have been reviewed and judged to be of good quality, and which can be installed securely. We call these the ‘promoted’ snaps, and you can search them for a matching name or description:</p>
<pre class="command-line"><code>$ snap find hello
Name Version Developer Notes Summary
hello 2.10 canonical - GNU Hello, the "hello world" snap
hello-huge 1.0 noise - A really big snap
hello-world 6.1 canonical - Hello world example</code></pre>
<p>As long as you know the name of the snap you want, and it is public or your own private snap, you can install it using its name directly. But if you search the store, you’ll only see public, promoted results.</p>
<p>Install the snap you want. We’ll start with GNU Hello, from the Free Software Foundation:</p>
<pre class="command-line"><code>snap install hello</code></pre>
<p>Each snap might include multiple related commands, with a default command that has the same name as the snap itself. Additional commands are prefixed with the snap name:</p>
<pre class="command-line"><code>$ hello
Hello, world!
$ hello.universe
Hello, universe!</code></pre>
<p>Snaps can also install services that run in the background, such as web servers or content management systems. Those will start automatically when you install the snap.</p>
<p>See the snaps installed on your system with ‘snap list’, which will also tell you the software version, the unique revision, the developer of the installed snap, and any extra information such as whether the snap is in developer mode or not:</p>
<pre class="command-line"><code>$ snap list
Name Version Rev Developer Notes
hello 2.10 26 canonical -
ubuntu-core 16.04+20160419.20-55 109 canonical -
webdm 0.17 21 canonical -</code></pre>
<h3>Always fresh – update fast and reliably</h3>
<p>Snaps are updated automatically in the background every day. You can manually get the latest version of all your snaps with snap refresh which will bring you completely up to date for all snaps, unless you specify particular snaps to refresh.</p>
<h3>Release channels - stable, candidate, beta and edge</h3>
<p>Developers can publish stable, release candidate, beta and edge versions of a snap, at the same time. This enables them to engage with users who are willing to test upcoming changes, and it enables users to decide how close to the leading edge of development they want to be.</p>
<p>By default, snaps are installed from the stable channel, but there is also a candidate channel which by convention will preview the next stable release, a beta channel and an edge channel.</p>
<pre class="command-line"><code>$ snap install hello --channel=beta</code></pre>
<p>Run the beta version of the command:</p>
<pre class="command-line"><code>$ hello
Hello, snap padawan!</code></pre>
<h3>Developer mode</h3>
<p>When a developer is working on a snap, they may want to let it run without the strict security confinement that is expected of stable, published snaps for general consumption. This is done by specifying <code>--devmode</code> on installation, to give permission for this snap to be run without that confinement.</p>
<p>Developers can publish snaps that require <code>--devmode</code> to work, but they can only publish those to beta or edge channels, not stable or candidate channels. As a user, you can install those beta or edge versions using <code>--devmode</code> as well. Bear in mind that you should NEVER do this unless you absolutely trust the developer with all the information on your system.</p>
<pre class="command-line"><code>$ snap install flubber --channel=beta
Error: this version of foo requires devmode.
$ snap install flubber --channel=beta --devmode
WARNING: snaps installed in devmode are not confined. You are trusting
all the private data on this system to the developer "frankie".
Do you still want to install ‘flubber’? [y/N] N</code></pre>
</div>
</section>
<section class="row">
<div class="wrapper">
<div class="seven-col">
<h2>Popular snaps</h2>
<p>If you are running Ubuntu 16.04 LTS, you can try all of this without having to install <code>snapd</code>. Check out snaps on <a class="external" href="https://uappexplorer.com/apps?type=snappy">uappexplorer.com</a> or just use the command line to install any of these great snaps:</p>
</div>
<ul class="grid-list twelve-col no-bullets no-margin-bottom">
<li class="grid-list__item four-col">
<div class="one-col ">
<img class="grid-list__img" src="{{ site.asset_path }}e512b0e2-jenkins.svg" alt="icon">
</div>
<div class="three-col last-col">
<h3>Jenkins</h3>
</div>
</li>
<li class="grid-list__item four-col">
<div class="one-col ">
<img class="grid-list__img" src="{{ site.asset_path }}3ea99f54-htop.svg" alt="icon">
</div>
<div class="three-col last-col">
<h3>htop</h3>
</div>
</li>
<li class="grid-list__item four-col last-col">
<div class="one-col ">
<img class="grid-list__img" src="{{ site.asset_path }}3ad2e1e3-notes.svg" alt="icon">
</div>
<div class="three-col last-col">
<h3>Notes</h3>
</div>
</li>
<li class="grid-list__item four-col">
<div class="one-col ">
<img class="grid-list__img" src="{{ site.asset_path }}476aaa77-cassandra.svg" alt="icon">
</div>
<div class="three-col last-col">
<h3>Cassandra</h3>
</div>
</li>
<li class="grid-list__item four-col">
<div class="one-col ">
<img class="grid-list__img" src="{{ site.asset_path }}24badefc-freecad.svg" alt="icon">
</div>
<div class="three-col last-col">
<h3>Freecad</h3>
</div>
</li>
<li class="grid-list__item four-col last-col">
<div class="one-col ">
<img class="grid-list__img" src="{{ site.asset_path }}aacc8ea7-shout.svg" alt="icon">
</div>
<div class="three-col last-col">
<h3>Shout</h3>
</div>
</li>
<li class="grid-list__item four-col last-row">
<div class="one-col ">
<img class="grid-list__img" src="{{ site.asset_path }}d96a74dd-moon-buggy.svg" alt="icon">
</div>
<div class="three-col last-col">
<h3>moon-buggy</h3>
</div>
</li>
<li class="grid-list__item four-col last-row">
<div class="one-col ">
<img class="grid-list__img" src="{{ site.asset_path }}c675c7a0-webdm.svg" alt="icon">
</div>
<div class="three-col last-col">
<h3>WebDM</h3>
</div>
</li>
<li class="grid-list__item four-col last-row last-col">
<div class="one-col ">
<img class="grid-list__img" src="{{ site.asset_path }}b0f30b97-hangups.svg" alt="icon">
</div>
<div class="three-col last-col">
<h3>Hangups</h3>
</div>
</li>
</ul>
</div>
</section>
<section class="row">
<div class="wrapper">
<div class="eight-col">
<h2>Creating snaps is easy!</h2>
<p>Snaps have a very simple internal structure — you can easily craft them by hand! But the easiest way to build a snap is with snapcraft, which supports building from source and from existing packages. Snapcraft also handles publishing your snaps to the world. Read how to <a href="/create">create a snap</a> and join the snap crafting community — we have a fun crowd of people who hang out on the <a class="external" href="https://webchat.freenode.net/?channels=snappy">#snappy channel on Freenode</a> or on <a href="mailto:snapcraft@lists.snapcraft.io">snapcraft@lists.snapcraft.io</a>.</p>
</div>
</div>
</section>
<section class="row row-grey equal-height">
<div class="wrapper equal-height--vertical-divider">
<div class="six-col equal-height--vertical-divider__item">
<h3>Learn more</h3>
<p>Want to get to know more about snaps, Snapcraft and Ubuntu Core?</p>
<ul class="no-bullets">
<li><a href="https://developer.ubuntu.com/en/snappy/guides/" class="external">Read the docs</a></li>
<li><a href="http://askubuntu.com/search?q=snappy" class="external">Ask Ubuntu</a></li>
</ul>
</div>
<div class="six-col last-col equal-height--vertical-divider__item">
<h3>Contribute</h3>
<p>Interested in building snaps or working with Ubuntu Core?</p>
<ul class="no-bullets">
<li><a href="https://developer.ubuntu.com/en/snappy/build-apps/" class="external">Create a snap</a></li>
<li><a href="https://github.com/ubuntu-core/snappy" class="external">Contribute to Ubuntu Core </a></li>
</ul>
</div>
</div>
</section>
<!-- jQuery with fallback to the 1.* for old IE -->
<!--[if lt IE 9]>
<script src="{{ site.asset_path }}b66ed708-jquery-1.11.0.min.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
<script src="{{ site.asset_path }}98884258-jquery-2.1.0.min.js"></script>
<!--<![endif]-->
<script src="js/jquery.responsiveTabs.min.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
$('#responsive-tabs').responsiveTabs({
startCollapsed: true,
setHash: false,
scrollToAccordion: true,
});
});
</script>