开维迪 發表於 2023-6-3 00:00:00

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 &lt;text to search&gt;</code></p>
<p>
        搜索要安装的snap包</p>
<p>
        <code>sudo snap install &lt;snap name&gt;</code></p>
<p>
        安装一个snap包</p>
<p>
        <code>sudo snap refresh &lt;snap name&gt;</code></p>
<p>
        更新一个snap包,如果你后面不加包的名字的话那就是更新所有的snap包</p>
<p>
        <code>sudo snap revert &lt;snap name&gt;</code></p>
<p>
        把一个包还原到以前安装的版本</p>
<p>
        <code>sudo snap remove &lt;snap name&gt;</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]
查看完整版本: ubuntu中snap包的安装、更新删除与简单使用