今回ubuntu18.04にGoとnode.js、dockerを入れようと思ったのですが
snapで入れる、aptで入れるといったことが書いており何が違うのかについても調べてもよくわかりません。。。
質問として2つありまして
・snapとaptの違いについて
・Go、node、docker(dockerについてはUbuntuソフトウェアからなのか)を入れるのはどちらに入れるのが正しいのか
ご教授いただけたらと思います・・・
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
自分も気になっていたのでちょっと調べてみました。
- Ubuntu 16.04 その32 - 新しいパッケージ形式であるSnappyパッケージが利用可能に・debパッケージと共存可能 - kledgeb
- Linuxパッケージ管理はSnappyが便利です | スマホアプリ制作・開発会社を東京都内でお探しなら【株式会社イーディーエー】
上の2つのリンクを読んだだけですが、大体以下のような理解でよいのではないかと思います。
- snapはパッケージ形式のこと(コマンド名もsnapだが)
⇒aptコマンドはdebパッケージを管理するコマンドの一つ(dpkg、apt-get、aptitudeとかいろいろある) - 古い環境に新バージョンのソフトウェアを提供したいが、debパッケージでは依存関係が解決できない。解決手段として、必要なものを丸ごとパッケージして、他のパッケージとの依存関係を気にせずに済むようにしたもの。
- snapパッケージはdebパッケージと共存可能で、あるアプリケーションをインストールするのにsnapパッケージとdebパッケージの両方をインストールしても問題ない。
使い分けについて、自分の場合は以下のように考えています。
- snapパッケージがあればsnapパッケージをインストール
- snapパッケージがなければdebパッケージをインストール(aptコマンド使用)
【補足】
snapでインストールしたパッケージのコマンドの格納場所をwhichで調べてみたら、/snap以下に格納されていました。
sh
1$ snap list 2Name Version Rev Tracking Publisher Notes 3core 16-2.35.5 5742 stable canonical? core 4docker 18.06.1-ce 321 stable docker-inc - 5powershell 6.1.1 14 stable microsoft-powershell? classic 6 7$ which docker 8/snap/bin/docker 9 10$ ls /snap 11README bin/ core/ docker/ powershell/
パッケージごとのディレクトリを見ると、バージョンごとのファイル一式を丸ごと格納してシンボリックリンクで切り替えているようです。
sh
1$ ll /snap/core 2合計 8 3drwxr-xr-x 5 root root 4096 10月 31 22:06 ./ 4drwxr-xr-x 6 root root 4096 9月 17 08:13 ../ 5drwxr-xr-x 24 root root 333 9月 21 18:32 5548/ 6drwxr-xr-x 24 root root 333 10月 5 22:40 5662/ 7drwxr-xr-x 24 root root 333 10月 16 16:36 5742/ 8lrwxrwxrwx 1 root root 4 10月 31 22:05 current -> 5742/ 9 10$ sudo du -sh /snap/core/* 11272M /snap/core/5548 12272M /snap/core/5662 13272M /snap/core/5742 140 /snap/core/current 15 16$ ll /snap/docker/ 17合計 8 18drwxr-xr-x 4 root root 4096 10月 10 08:00 ./ 19drwxr-xr-x 6 root root 4096 9月 17 08:13 ../ 20drwxr-xr-x 9 root root 282 9月 22 2017 179/ 21drwxr-xr-x 13 root root 335 10月 1 23:43 321/ 22lrwxrwxrwx 1 root root 3 10月 10 08:00 current -> 321/ 23 24$ sudo du -sh /snap/docker/* 25171M /snap/docker/179 26379M /snap/docker/321 270 /snap/docker/current 28 29$ ll /snap/powershell/ 30合計 8 31drwxr-xr-x 4 root root 4096 11月 14 10:27 ./ 32drwxr-xr-x 6 root root 4096 9月 17 08:13 ../ 33drwxr-xr-x 8 root root 170 9月 14 07:16 11/ 34drwxr-xr-x 8 root root 170 11月 14 08:38 14/ 35lrwxrwxrwx 1 root root 2 11月 14 10:27 current -> 14/ 36 37$ sudo du -sh /snap/powershell/* 38186M /snap/powershell/11 39186M /snap/powershell/14 400 /snap/powershell/current
投稿2018/11/18 10:18
総合スコア1800
0
snapはディストリ依存をなくしてアプリをインストールできるパッケージの仕組みです。似たようなものにflatpakなどがあります。
従来のapt/debでインストールされるものとの最大の違いは実行環境です。
コンテナ技術でホストマシンのファイルシステムとは隔離された環境下で動作します。ほとんどの場合、ホスト環境のネットワークやホームパス配下をそのまま継承して動作するので違和感なく使えるようになっています。
ホストマシンのシステム領域のファイルをいじらないのでインストールやアンインストールがクリーンに行われるというメリットがありますが、依存ライブラリをアプリごとにインストールする場合があり、ディスク容量をより消費する傾向があるようです。
また、ホストのシステム領域に入れないと利用できないパッケージはsnapにはありません。aptで探して入れることになります。(例:supervisorなど)
snap/flatpakはクロスディストリを目指してはいますが実際に他のディストリで使おうとすると細かいトラブルはあると思います。セキュリティ周りやIME連携部分など。そういったトラブルに対応した調整はまだまだエンドユーザーがやることになってしまうでしょう。
個人的にはaptで見つかるものはaptで入れておくほうがトラブルは少ないと思います。snapにしかないアプリをインストールできるのがsnapの利点かなぁと。
投稿2018/11/21 01:37
総合スコア3367
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/04 23:48
2019/02/05 00:56
2019/02/05 01:02
2019/02/05 01:11
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/19 09:28