スナップパッケージが存在する理由-本当に必要ですか?


11

仮定

正直なところ、スナップパッケージについてはあまり知りませんが、これはこの質問とは無関係です。以下を参照してください。システムは既存のものとは大きく異なると思います。

変更は意味がありますか?

実際に必要なものはありますか?つまり、新しいユースケースがあり、それは新しいフォーマットを開発するのに十分重要です-そして関連するインフラストラクチャですか?

新しいユースケースにも対応するように現在の方法を変更することは不可能でしたか?

または、私はポイントを逃していますか?

私が見ているものはほとんどがマーケティングである可能性があります-技術的な変更を最小限に抑えるための新しい名前とプレゼンテーションです。また、新しいパッケージは既存の形式に非常に密接に基づいているため、ほとんどの場合、ユーザーへの表示が変更されている可能性があります。もちろん、それは良い解決策かもしれません。この場合、この質問にはあまり関連性がありません。

それから、私はそれが側面の側面に答えるのにまだ十分に有用であることを望みます。質問が新規ユーザーにとって役に立たない、または混乱しない場合はお知らせください。削除させていただきます。

では、なぜ存在するのでしょうか?


バックグラウンド

私の最初の反応は「それは意味がありません!」でした。

これは、物理学のサイトで、誰かが彼の輝かしい新しいアイデアを答えで議論しない理由を不幸に尋ねた状況に似ています。それはクラックポットのアイデアのように強く見えました。これまでのところ、実際の物理的知識とは異なり、開始点を見つけることさえ困難でした。私は彼のアイデアに一言も触れない答えを書きましたが、なぜ最初のケースではなく、クラックポットのアイデアを想定して議論しないのかを説明しました。答えは実際にポイントに達していたと思います。

私の仮定が正しければ、このケースは似ています。

しかし、そうではないかもしれません-見てみましょう。


「主に意見に基づいた」との厳しい投票があります-それは、回答が意見に基づいたものになると予想されることを意味しますか?変更が必要であるというコンセンサスが確立されていないことを意味するため、基本的にそれ自体が答えになります。したがって、賛否両論があります。これは、私の質問が実際のところ非常に重要であり、予想よりも有用であることを意味します!
フォルカーシーゲル

2
この質問を再開することに投票しました。パッケージマネージャーが既に存在し、Ubuntu(および他のOS)が既にスナップを持っているのに、なぜスナップが導入されたのかを本当に質問しています。あなたは正しい:これが実際に主に意見に基づく質問であった場合、それは主に事実と経験に基づいてそれに対する答えが与えられないことを意味するだろう。ただし、muruの優れた回答からおわかりのように、これは事実ではありません。スナップを使用する必要がある場合(または使用する場合でも)は、主に意見に基づいた議論を行うことができますが、それはそうではありませんでした。
エリアケイガン

回答:


17

はい、本当に必要です。

あるソフトウェアが別のソフトウェアに初めて依存するようになってから、このようなものが本当に必要になりました。

これを明確にしましょう。

依存関係の管理は困難です。

依存関係の地獄と呼ばれる理由があります。RPMやDebianのようなパッケージングシステムは、依存関係の地獄を回避する目的で作成されました。ただし、誰かが費用を支払う必要があります。

  1. Windowsでは、プログラムが依存関係をバンドルしているため、ユーザーはアップグレード(およびその欠如によるセキュリティ上の問題)に注意する必要があります。開発者が自分のアプリ用にバージョンXが必要な場合は、簡単です。アプリで提供します。更新をどのように処理しますか?
  2. プログラムがリポジトリのソフトウェアに依存できるほとんどのLinuxディストリビューション(DebianまたはRed Hatに続く)では、リポジトリのプログラムはリポジトリのソフトウェアに依存する必要があります。アプリ用にバージョンXが必要で、ディストリビューションがXを提供している場合、シンプルです:私はそれに依存しています。そして、ディストリビューションがそうでない場合は?その後:???
    • ディストリビューションに複数のバージョンを追加すると、メンテナーの負荷が増加します
    • 選択した依存関係のバージョンを使用する機能を失うと、開発者の負荷が増加します
    • 選択したバージョンのアプリケーションを使用する機能を失うと、ユーザーがイライラする

どちらの方法でもかなりの自由が失われます。

これがスナップの出番です。開発者にバージョンXを組み込み、パッケージングシステムに更新を管理させます。誰が費用を負担しますか?ユーザー:

  • より多くのスペースが必要です。
  • 不注意な開発者が依存関係にパッチを適用したときにスナップを再構築しないため、それらを危険にさらすことによって。

引き換えに、どのような特典がありますか?

  • 更新によるセキュリティ(率直に言って、気にする人が足りない)を別にすれば、ユーザーはスナップの依存関係について心配する必要はありません。単語はほとんど意味を失います。
  • セキュリティの更新は別として、ソフトウェア開発者はユーザーに正しい依存関係をインストールさせることを心配する必要はありません。

3
はい、依存性地獄はそれを非常によく説明していると思います。
フォルカーシーゲル

反対の声を作成させてください:)、なぜ彼らは単に使用しないの/optですか?
user.dz

@Sneetsherはこのように考えています:/ optのあるアプリが/ optの別のアプリを上書きするのを防ぐものは何ですか?さらに悪いことに、あるアプリが別のアプリの秘密キーを読み取れないようにするにはどうすればよいですか?
エヴァン

@Evan、AppArmorそれをカバーするために既に終了しています。しかし、保護の方法は異なる場合があります。とにかく、トピックは搭乗することです。
user.dz

ムル、これをすべて書いてくれてありがとう。ちなみに、これはGoogleが最初に答えた理由でした。しかし、私は興味があります。私のシステムは、たとえばChromiumのスナップを使用していることがわかります。そして今、私はSkypeをインストールしたいと思います。通常私はそうするでしょうsudo apt-get install skypeが、それから私はそれがスナップとして利用可能であるとわかります。しかし、Chromiumをインストールしたとき、スナップを使用するために特別なことはしませんでした。まだそうです。だから今、スナップが存在する理由を理解し、それらが存在することを嬉しく思います。心配する必要がある場合、私は今興味がありsudo snap install skypeますか?
–SDsolar

3

便利なスナップの特定の機能の1つは、リリース候補マスターなど、複数のチャネルを提供する開発者向けのチャネルを選択できることです。

たとえば、[ チャンネル ]ボタンをクリックすると、nextcloud下のスクリーンショットにダイアログが表示されます。

他の強力なセールスポイントは、セキュリティポリシーコンテキストによって制御される分離、不変性、およびサンドボックスです。これにより、アプリごとのアクセス許可を定義できます。

  • 読み取り/書き込み場所
  • リムーバブルストレージへのアクセス
  • スナップがホワイトリスト/ブラックリストに登録されている国
  • ネットワークアクセス
  • カメラ、プリンター、ジョイスティック、GPSロケーション
  • システム設定
  • ...スナップインターフェイスの完全なリスト

このアプローチは、許可とコンテンツプロバイダー/レシーバーを備えたMacOSアプリバンドルとAndroidアプリサンドボックスをある程度模倣します。

Ubuntuスナップパッケージ選択チャネル

ここで、それぞれ独自のバージョンの特定のライブラリ、独自のバージョンのPython / Ruby / NodeJSランタイムを備えた多数のアプリを実行する必要があり、依存関係の地獄に陥ってシステムライブラリを台無しにしたり汚染したりしたくない場合、システムPython / Node / Perl / Rubyモジュールなど。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.