ubuntu中snap包的安装、更新删除与简单使用
<p><span><strong>概述</strong></span></p>
<p>
什么是snap,snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间</p>
<p>
Snap的安装包扩展名是.snap,类似于一个容器,它包含一个应用程序需要用到的所有文件和库(snap包包含一个私有的root文件系统,里面包含了依赖的软件包)。它们会被安装到单独的目录;各个应用程序之间相互隔离。使用snap有很多好处,首先它解决了软件包的依赖问题;其次,也使应用程序更容易管理。</p>
<p>
现在支持snap的应用并不多,snap软件包一般安装在/snap目录下</p>
<p>
<span><strong>一些常用的命令</strong></span></p>
<p>
其实使用snap包很简单,下面我来介绍一下一些常用的命令</p>
<p>
<code>sudo snap list</code></p>
<p>
列出已经安装的snap包</p>
<p>
<code>sudo snap find <text to search></code></p>
<p>
搜索要安装的snap包</p>
<p>
<code>sudo snap install <snap name></code></p>
<p>
安装一个snap包</p>
<p>
<code>sudo snap refresh <snap name></code></p>
<p>
更新一个snap包,如果你后面不加包的名字的话那就是更新所有的snap包</p>
<p>
<code>sudo snap revert <snap name></code></p>
<p>
把一个包还原到以前安装的版本</p>
<p>
<code>sudo snap remove <snap name></code></p>
<p>
删除一个snap包</p>
<p>
<span><strong>简单的使用</strong></span></p>
<p>
下面我就安装一个编辑器来演示怎么安装删除一个软件包</p>
<p>
首先我想安装hello-world</p>
<p>
那么先找一下有没有hello-world</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_950877">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">➜ bin </code><code class="bash functions">sudo</code> <code class="bash plain">snap search hello-world</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">Name Version Developer Notes Summary</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">hello-world 6.3 canonical - The </code><code class="bash string">'hello-world'</code> <code class="bash plain">of snaps</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">hello-world-om26er 0.2 om26er - A great snap</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">hello-lhc 1.0 cprov - Hello world application </code><code class="bash keyword">for</code> <code class="bash plain">LHC</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
没错有,那么我们就来安装</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_243775">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">➜ ~ snap </code><code class="bash functions">install</code> <code class="bash plain">hello-world</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">hello-world 6.3 from </code><code class="bash string">'canonical'</code> <code class="bash plain">installed</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
下载可能会很慢,所以最好挂代理</p>
<p>
接着我们看一下有没有安装好</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_373220">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">➜ bin snap list</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">Name Version Rev Developer Notes</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">core 16-2.28.5 3247 canonical core</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">hello-world 6.3 27 canonical -</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
最后我们删除它</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_4899">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">➜ ~ snap remove hello-world</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">hello-world removed</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>snap包的地址</strong></span></p>
<p>
如果你不知道可以下载什么snap包,你可以在下面的地址下载snap包来安装<br>
https://uappexplorer.com/snaps</p>
<p>
<span><strong>一个报错</strong></span></p>
<p>
因为安装douban-fm的时候时间太长了,我就终止了一下这个操作,之后再次安装这个包的时候就报了一个错误<br><code>error: cannot install "douban-fm": snap "core" has changes in progress</code></p>
<p>
解决方式很简单</p>
<p>
首先查看一下正在进行的change</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_969851">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">➜ / snap changes</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">ID Status Spawn Ready Summary</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">2 Done 2017-11-15T02:33:51Z 2017-11-15T02:33:51Z Refresh all snaps: no updates</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">3 Error 2017-11-15T03:20:07Z 2017-11-15T03:20:23Z Install </code><code class="bash string">"douban-fm"</code> <code class="bash plain">snap</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">4 Done 2017-11-15T03:20:07Z 2017-11-15T03:20:10Z Initialize device</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">5 Error 2017-11-15T03:20:38Z 2017-11-15T03:34:21Z Install </code><code class="bash string">"douban-fm"</code> <code class="bash plain">snap</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">6 Doing 2017-11-15T03:34:27Z - Install </code><code class="bash string">"douban-fm"</code> <code class="bash plain">snap</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
没错<code>install douban-fm</code>还在doing中,所以要终止这个进程</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_552299">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">➜ / </code><code class="bash functions">sudo</code> <code class="bash plain">snap abort 6</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">➜ / snap changes</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">ID Status Spawn Ready Summary</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">2 Done 2017-11-15T02:33:51Z 2017-11-15T02:33:51Z Refresh all snaps: no updates</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">3 Error 2017-11-15T03:20:07Z 2017-11-15T03:20:23Z Install </code><code class="bash string">"douban-fm"</code> <code class="bash plain">snap</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">4 Done 2017-11-15T03:20:07Z 2017-11-15T03:20:10Z Initialize device</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">5 Error 2017-11-15T03:20:38Z 2017-11-15T03:34:21Z Install </code><code class="bash string">"douban-fm"</code> <code class="bash plain">snap</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">6 Error 2017-11-15T03:34:27Z 2017-11-15T03:40:51Z Install </code><code class="bash string">"douban-fm"</code> <code class="bash plain">snap</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
之后再次执行安装就好了</p>
<p>
<span><strong>查询最近做的操作</strong></span></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_622412">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ snap changes</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
关于snap更多信息,查看man手册:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_851057">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ </code><code class="bash functions">man</code> <code class="bash plain">snap</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
update:现在Snap可以在大多数Linux发行版上使用,极大的简化了Linux软件的安装。</p>
<p>
<span><strong>总结</strong></span></p>
<p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
原文链接:http://www.bboysoul.com/2017/11/15/ubuntu%20使用snap包/</p>
頁:
[1]