Package-Management

如何使用 zypper 在 64 位 SUSE 機器上安裝 32 位軟體包?

  • October 15, 2018

如果我必須安裝一個包(64 位),我使用 - zypper install -y MozillaFirefox這與zypper install -y MozillaFirefox.x86_6464 位機器相同。

如果我使用zypper install -y MozillaFirefox.i586它退出 -

No provider of 'MozillaFirefox.i586' found.

有沒有辦法使用 zypper 在 64 位機器上安裝 32 位軟體包。

就像在 yum 中一樣,我可以做yum install firefox.x86_64yum 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): 

引用自:https://unix.stackexchange.com/questions/469528