ordinarykuma的blog

我終於放棄了Nala作為apt的前端

為何我會去用nala?

  原因有很多,我逐一介紹。首先是看到飛蚊話Up主的這一個影片,發現其輸出結果、並行下載還蠻誘人的。其次是我用過Fedora一段時間,我雖不喜歡dnf的依賴解析,但很喜歡dnf的輸出結果的處理方式。這是,nala就滿足了我,我單純的以為是apt的前端,就只是把apt的輸出結果轉換成nala的輸出樣式(這也是大多數推薦的說法)。

為什麼我放棄了?

  這有一些理由,我逐一說明。 在Ubuntu上使用的時候,我體驗過並行下載,可能是因為在臺灣吧,我覺得差別不大,但是我發現nala讓我的source.list的配置有些混亂,我花了一點時間3恢復成原始的source.list並且不用nala了。 有了前車之鑑,我在debian上就只是把nala當作一般的前端,但隨著使用的時間愈久,我發現nala的依賴解析愈來愈奇怪。我今天要安裝Protonmail的桌面app,因為這一個依賴偏好使用pulseaudio,而我的電腦是pipewire,竟然想到把桌面環境拔掉(因為要移除pipewire,而pipewire是桌面環境的必須依賴),我立刻取消,用了apt就沒有這一個問題。

nala的輸出和依賴解析

xjd@XJD:~/Downloads$ sudo nala install ./ProtonMail-desktop-beta.deb 
Notice: The following will be installed to satisfy proton-mail:
  pulseaudio
========================================================================
 Installing                                                                                                                                                              
========================================================================
  Package:                   Version:               Size:  
  proton-mail                1.13.4                 296 KB  
  libasound2-plugins         1.2.12-2+b4            71 KB  
  libpulsedsp                17.0+dfsg1-2.1+b2      34 KB  
  pulseaudio                 17.0+dfsg1-2.1+b2      1.2 MB  
  pulseaudio-utils           17.0+dfsg1-2.1+b2      85 KB  
                                                                                                                                                                         
========================================================================
 Suggested, Will Not Be Installed                                                                                                                                        
========================================================================
  Package:                   Version:               Size:  
  pavumeter                  Virtual Package        0 Bytes  
  pavucontrol                6.1-1                  199 KB  
  paprefs                    1.2-1+b1               59 KB  
  gir1.2-gnomekeyring-1.0    Virtual Package        0 Bytes  
  libgnome-keyring0          Virtual Package        0 Bytes  
                                                                                                                                                                         
========================================================================
 Removing                                                                                                                                                                
========================================================================
  Package:                   Version:               Size:  
  gnome                      1:50+1                 16 KB  
  gnome-core                 1:50+1                 15 KB  
  pipewire-alsa              1.6.8-1                195 KB  
  pipewire-audio             1.6.8-1                22 KB  
                                                                                                                                                                         
========================================================================
 Summary                                                                                                                                                                 
========================================================================
 Install 5 Packages                                                                                                                                                      
 Remove  4 Packages                                                                                                                                                      
                                                                                                                                                                         
 Total download size  1.4 MB   
 Disk space required  7.3 MB   
                               
Do you want to continue? [Y/n] n
Abort.

apt的依賴解析

xjd@XJD:~/Downloads$ sudo apt install ./ProtonMail-desktop-beta.deb 
Note, selecting 'proton-mail' instead of './ProtonMail-desktop-beta.deb'
Installing:                 
  proton-mail

Suggested packages:
  gir1.2-gnomekeyring-1.0  libgnome-keyring0

Summary:
  Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 0
  Download size: 0 B / 83.3 MB
  Space needed: 303 MB / 257 GB available

Get:1 /home/xjd/Downloads/ProtonMail-desktop-beta.deb proton-mail amd64 1.13.4 [83.3 MB]
Retrieving bug reports... Done   
Parsing Found/Fixed information... Done
Selecting previously unselected package proton-mail.
(Reading database… 209786 files and directories currently installed.)
Preparing to unpack …/ProtonMail-desktop-beta.deb…
Unpacking proton-mail (1.13.4)…
Setting up proton-mail (1.13.4)…
Processing triggers for desktop-file-utils (0.28-1)…
Processing triggers for gnome-menus (3.38.1-3)…
Processing triggers for mailcap (3.77)…
Notice: Download is performed unsandboxed as root as file '/home/xjd/Downloads/ProtonMail-desktop-be
ta.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

為什麼不一樣

  我們來看看GitHub的說明。

Nala is a command-line front-end for libapt-pkg, currently being rewritten in Rust on top of rust-apt.

  看到了嗎?這不是apt的前端,而是apt的某一依賴解析的前端!這意味著nala用著和apt一樣的底層,但不代表二者生成的解會是一樣的,因為這裡不保證使用的邏輯是完全一樣的。

結論

  我覺得還是用apt就好了,減少麻煩。

#Debian