Package-Management
如何使用 zypper 在 64 位 SUSE 機器上安裝 32 位軟體包?
如果我必須安裝一個包(64 位),我使用 -
zypper install -y MozillaFirefox
這與zypper install -y MozillaFirefox.x86_64
64 位機器相同。如果我使用
zypper install -y MozillaFirefox.i586
它退出 -
No provider of 'MozillaFirefox.i586' found.
有沒有辦法使用 zypper 在 64 位機器上安裝 32 位軟體包。
就像在 yum 中一樣,我可以做
yum install firefox.x86_64
,yum install firefox.i686
並且兩者都為我工作,並為我提供所需架構的包。
如果您啟用了包含 32 位軟體包的儲存庫,您將能夠安裝它們。關於 firefox,您必須從mozilla 網站下載 32 位軟體包,因為自 Leap 42.1(13.2 是最後一個 32 位版本)以來 openSUSE 是 64 位的,官方軟體包也是如此。您可以通過執行查看包的可用架構
leap15:~ # zypper se -s MozillaFirefox Loading repository data... Reading installed packages... S | Name | Type | Version | Arch | Repository --+------------------------------------+------------+---------------------+--------+-------------------------- | MozillaFirefox | package | 60.2.2-lp150.3.23.1 | x86_64 | openSUSE-Leap-15.0-Update [...]
編輯:要安裝不同的架構,您必須將其作為功能提供。zypper 手冊頁的摘錄:
可以通過它們的名稱或它們提供的功能來選擇這些包。
- 能力由“NAME$$ .‘ARCH’ $$$$ OP EDITION $$",其中 ARCH 是架構程式碼$$ … $$
因此,要安裝 32 位軟體包,您將執行:
opensuse:~ # zypper in -C MozillaFirefox.i586 Loading repository data... Warning: Repository 'OS-13.1-Updates' appears to be outdated. Consider using a different mirror or server. Reading installed packages... Resolving package dependencies... Problem: nothing provides libz.so.1 needed by MozillaFirefox-26.0-4.2.i586 Solution 1: do not ask to install a solvable providing MozillaFirefox.i586 Solution 2: break MozillaFirefox-26.0-4.2.i586 by ignoring some of its dependencies Choose from above solutions by number or cancel [1/2/c] (c):