<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Apt on KnightLi的博客</title>
        <link>https://www.knightli.com/zh-tw/tags/apt/</link>
        <description>Recent content in Apt on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Sat, 02 May 2026 11:22:26 +0800</lastBuildDate><atom:link href="https://www.knightli.com/zh-tw/tags/apt/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Snap、Flatpak 和 apt 到底有什麼區別</title>
        <link>https://www.knightli.com/zh-tw/2026/05/02/snap-flatpak-apt-differences/</link>
        <pubDate>Sat, 02 May 2026 11:22:26 +0800</pubDate>
        
        <guid>https://www.knightli.com/zh-tw/2026/05/02/snap-flatpak-apt-differences/</guid>
        <description>&lt;p&gt;在 Ubuntu 上安裝軟體時，經常會遇到三個名字：&lt;code&gt;apt&lt;/code&gt;、Snap 和 Flatpak。它們都能安裝應用程式，但解決的問題不一樣。&lt;/p&gt;
&lt;p&gt;簡單說：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;工具&lt;/th&gt;
          &lt;th&gt;主要定位&lt;/th&gt;
          &lt;th&gt;更適合&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;apt&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Ubuntu/Debian 的傳統套件管理器&lt;/td&gt;
          &lt;td&gt;系統元件、命令列工具、發行版維護的軟體&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Snap&lt;/td&gt;
          &lt;td&gt;Canonical 推動的應用打包格式&lt;/td&gt;
          &lt;td&gt;Ubuntu 桌面應用、服務端工具、自動更新軟體&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Flatpak&lt;/td&gt;
          &lt;td&gt;面向桌面應用的跨發行版格式&lt;/td&gt;
          &lt;td&gt;圖形軟體、沙盒化應用、Flathub 生態&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;apt系統的一部分&#34;&gt;apt：系統的一部分
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; 是 Debian/Ubuntu 系的傳統套件管理器。它從發行版軟體源安裝 &lt;code&gt;.deb&lt;/code&gt; 套件，並由發行版維護依賴關係。&lt;/p&gt;
&lt;p&gt;安裝方式通常是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install firefox
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; 的特點是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;和系統整合最深。&lt;/li&gt;
&lt;li&gt;依賴由發行版統一管理。&lt;/li&gt;
&lt;li&gt;軟體版本通常跟隨發行版節奏。&lt;/li&gt;
&lt;li&gt;適合系統函式庫、驅動、命令列工具和伺服器元件。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;它的缺點也明顯：軟體版本可能偏舊。因為發行版更重視穩定性，不會總是第一時間提供上游最新版。&lt;/p&gt;
&lt;h2 id=&#34;snap把應用和依賴打進一個包&#34;&gt;Snap：把應用和依賴打進一個包
&lt;/h2&gt;&lt;p&gt;Snap 是 Canonical 推動的打包格式。它把應用和大量執行依賴一起打包，減少對系統函式庫版本的依賴。&lt;/p&gt;
&lt;p&gt;安裝方式類似：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo snap install firefox
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Snap 的優勢是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;同一個包更容易跨 Ubuntu 版本執行。&lt;/li&gt;
&lt;li&gt;應用更新可以獨立於系統更新。&lt;/li&gt;
&lt;li&gt;預設有一定隔離和權限控制。&lt;/li&gt;
&lt;li&gt;適合需要快速更新的桌面應用和部分服務端工具。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;它的常見槽點是啟動慢、佔用空間更大、主題整合不夠自然，以及更新節奏不如 &lt;code&gt;apt&lt;/code&gt; 那樣完全由使用者控制。&lt;/p&gt;
&lt;h2 id=&#34;flatpak更偏桌面應用&#34;&gt;Flatpak：更偏桌面應用
&lt;/h2&gt;&lt;p&gt;Flatpak 也是跨發行版應用打包方案，但它更偏向 Linux 桌面應用生態。很多 Flatpak 應用來自 Flathub。&lt;/p&gt;
&lt;p&gt;常見安裝方式是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;flatpak install flathub org.mozilla.firefox
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Flatpak 的特點是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;跨發行版能力強。&lt;/li&gt;
&lt;li&gt;更關注桌面應用分發。&lt;/li&gt;
&lt;li&gt;使用 runtime 共享基礎依賴。&lt;/li&gt;
&lt;li&gt;沙盒和權限模型更清晰。&lt;/li&gt;
&lt;li&gt;Flathub 上的軟體選擇很多。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Flatpak 也會佔用額外空間，第一次安裝 runtime 時尤其明顯。但多個應用共享 runtime 後，空間浪費會少一些。&lt;/p&gt;
&lt;h2 id=&#34;最大區別依賴怎麼處理&#34;&gt;最大區別：依賴怎麼處理
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; 更像「系統拼裝」。應用依賴系統裡的函式庫，多個軟體共享同一套依賴。&lt;/p&gt;
&lt;p&gt;Snap 和 Flatpak 更像「應用自帶執行環境」。應用帶著自己需要的一部分依賴走，減少系統版本差異帶來的問題。&lt;/p&gt;
&lt;p&gt;這帶來一個取捨：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;方式&lt;/th&gt;
          &lt;th&gt;優點&lt;/th&gt;
          &lt;th&gt;缺點&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;apt&lt;/code&gt; 共享系統依賴&lt;/td&gt;
          &lt;td&gt;省空間、整合好、維護統一&lt;/td&gt;
          &lt;td&gt;版本受發行版限制&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Snap/Flatpak 自帶執行環境&lt;/td&gt;
          &lt;td&gt;跨版本、跨發行版、更容易更新&lt;/td&gt;
          &lt;td&gt;包更大、可能啟動慢、整合感較弱&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;隔離和權限&#34;&gt;隔離和權限
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; 安裝的軟體通常直接執行在系統環境裡。它們和系統整合自然，但隔離較少。&lt;/p&gt;
&lt;p&gt;Snap 和 Flatpak 都有沙盒思路：應用預設不能隨便存取所有系統資源，需要透過權限接口存取檔案、攝影機、網路、桌面通知等。&lt;/p&gt;
&lt;p&gt;這不等於它們絕對安全，但至少提供了更明確的權限邊界。對來源複雜的桌面應用來說，這很有意義。&lt;/p&gt;
&lt;h2 id=&#34;更新方式不同&#34;&gt;更新方式不同
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; 通常跟隨系統更新：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Snap 會自動更新，這是它方便也容易引起爭議的地方。使用者不用管版本，但也少了一些控制感。&lt;/p&gt;
&lt;p&gt;Flatpak 可以手動更新：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;flatpak update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;所以如果你很在意「什麼時候更新」，&lt;code&gt;apt&lt;/code&gt; 和 Flatpak 的控制感通常更強；如果你想讓應用自動保持新版本，Snap 更省心。&lt;/p&gt;
&lt;h2 id=&#34;該用哪個&#34;&gt;該用哪個
&lt;/h2&gt;&lt;p&gt;可以按場景選：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;系統工具、驅動、服務端元件：優先 &lt;code&gt;apt&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;Ubuntu 預設推薦的桌面應用：可以用 Snap。&lt;/li&gt;
&lt;li&gt;想要較新的桌面軟體，尤其是跨發行版應用：可以用 Flatpak。&lt;/li&gt;
&lt;li&gt;同一個軟體三種方式都有：優先看穩定性、啟動速度、主題整合和更新需求。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一個保守的選擇是：系統層用 &lt;code&gt;apt&lt;/code&gt;，桌面應用按需要在 Snap 和 Flatpak 之間選。&lt;/p&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt;、Snap、Flatpak 不是誰完全替代誰，而是分發模型不同。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; 更適合維護系統；Snap 更強調應用自帶依賴和自動更新；Flatpak 更適合跨發行版桌面應用和沙盒化分發。&lt;/p&gt;
&lt;p&gt;如果只是日常使用，不必糾結「哪個最好」。系統軟體用 &lt;code&gt;apt&lt;/code&gt;，桌面應用看發行版推薦和自己的體驗，能穩定執行、更新可控、權限清楚，就是合適的選擇。&lt;/p&gt;
&lt;p&gt;參考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.reddit.com/r/Ubuntu/comments/9awvip/eli5_snap_and_flatpak_how_are_they_differ_from_apt/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.reddit.com/r/Ubuntu/comments/9awvip/eli5_snap_and_flatpak_how_are_they_differ_from_apt/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
