今回ubuntu18.04にGoとnode.js、dockerを入れようと思ったのですが
snapで入れる、aptで入れるといったことが書いており何が違うのかについても調べてもよくわかりません。。。
質問として2つありまして
・snapとaptの違いについて
・Go、node、docker(dockerについてはUbuntuソフトウェアからなのか)を入れるのはどちらに入れるのが正しいのか
ご教授いただけたらと思います・・・
以下のような質問にはグッドを送りましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 間違っている
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答2件
9
ベストアンサー
自分も気になっていたのでちょっと調べてみました。
- 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
総合スコア1788
6
snapはディストリ依存をなくしてアプリをインストールできるパッケージの仕組みです。似たようなものにflatpakなどがあります。
従来のapt/debでインストールされるものとの最大の違いは実行環境です。
コンテナ技術でホストマシンのファイルシステムとは隔離された環境下で動作します。ほとんどの場合、ホスト環境のネットワークやホームパス配下をそのまま継承して動作するので違和感なく使えるようになっています。
ホストマシンのシステム領域のファイルをいじらないのでインストールやアンインストールがクリーンに行われるというメリットがありますが、依存ライブラリをアプリごとにインストールする場合があり、ディスク容量をより消費する傾向があるようです。
また、ホストのシステム領域に入れないと利用できないパッケージはsnapにはありません。aptで探して入れることになります。(例:supervisorなど)
snap/flatpakはクロスディストリを目指してはいますが実際に他のディストリで使おうとすると細かいトラブルはあると思います。セキュリティ周りやIME連携部分など。そういったトラブルに対応した調整はまだまだエンドユーザーがやることになってしまうでしょう。
個人的にはaptで見つかるものはaptで入れておくほうがトラブルは少ないと思います。snapにしかないアプリをインストールできるのがsnapの利点かなぁと。
投稿2018/11/21 01:37
総合スコア3259
良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
2019/02/05 00:56
2019/02/05 01:11
関連した質問
Q&A
解決済
【Laradock】workspaceとプロジェクトの`python3 --version`が違う
回答2
クリップ0
更新
2022/11/06
Q&A
受付中
dockerが build できない
回答3
クリップ0
更新
2022/01/12
Q&A
解決済
Google Colab 上で Selenium の Webdriver が動かなくなった(Ubuntu 20.04 対応?)
回答1
クリップ0
更新
2023/01/20
Q&A
解決済
WSL2 UbuntuでDockerが立ち上がらない
回答2
クリップ0
更新
2022/05/10
Q&A
解決済
Laravel sailで構築したローカル環境で、ルートパス(http://localhost/)へのリクエストが'http://localhost/tutorial/'に書き換わってしまう
回答1
クリップ0
更新
2023/02/04
Q&A
解決済
ubuntuで再起動すると、NVRM: Can't find an IRQ for your NVIDIA card 文言から始まり、reboot:Restarting systemで終わるエラー文
回答1
クリップ0
更新
2023/02/01
Q&A
解決済
Google ColaboratoryでChrome Devtools Protocolを使って、ウェブページのBase64形式のpdfデータを取得し、文字化け無くPDF化し保存したい
回答1
クリップ0
更新
2023/02/03
意見交換
受付中
自作アプリの制作に伴ってデータベースのテーブル設計について教えてほしい
回答2
クリップ0
更新
2023/02/04
良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2021/03/19 09:28