質問: 今回ubuntu18.04にGoとnode.js、dockerを入れようと思ったのですが snapで入れる、aptで入れるといったことが書いており何が違うのかについても調べてもよくわかりません。。。 質問として2つありまして ・snapとaptの違いについて ・Go、node、docker(dockerについてはUbuntuソフトウェアからなのか)を入れるのはどちらに入れるのが正しいのか ご教授いただけたらと思います・・・
回答: snapはディストリ依存をなくしてアプリをインストールできるパッケージの仕組みです。似たようなものにflatpakなどがあります。 従来のapt/debでインストールされるものとの最大の違いは実行環境です。 コンテナ技術でホストマシンのファイルシステムとは隔離された環境下で動作します。ほとんどの場合、ホスト環境のネットワークやホームパス配下をそのまま継承して動作するので違和感なく使えるようになっています。 ホストマシンのシステム領域のファイルをいじらないのでインストールやアンインストールがクリーンに行われるというメリットがありますが、依存ライブラリをアプリごとにインストールする場合があり、ディスク容量をより消費する傾向があるようです。 また、ホストのシステム領域に入れないと利用できないパッケージはsnapにはありません。aptで探して入れることになります。(例:supervisorなど) snap/flatpakはクロスディストリを目指してはいますが実際に他のディストリで使おうとすると細かいトラブルはあると思います。セキュリティ周りやIME連携部分など。そういったトラブルに対応した調整はまだまだエンドユーザーがやることになってしまうでしょう。 個人的にはaptで見つかるものはaptで入れておくほうがトラブルは少ないと思います。snapにしかないアプリをインストールできるのがsnapの利点かなぁと。