樹莓派 Learning 002 裝機後的必要操作 --- 05 給樹莓派搭建“x86 + pi”環境 -- 安裝**32位執行庫** -- 解決`E:未發現軟體包 xxx` 問題

AoboSir發表於2016-08-01

樹莓派 裝機後的必要操作 — 給樹莓派搭建“x86 + pi”環境 – 安裝32位執行庫 – 解決E:未發現軟體包 xxx 問題

我的樹莓派型號:Raspberry Pi 2 Model B V1.1
裝機系統:NOOBS v1.9.2

當你使用sudo apt-get install命令安裝某個安裝包的時候,會可能會出現E:未發現軟體包 xxx這樣的問題,要如何解決?
如果你像要在樹莓派上下載x86的軟體包,要怎麼做?
如果你像要在樹莓派上執行x86的軟體包,你要怎麼做?
下面我就告訴你:

1 安裝 32位執行庫

安裝 32位執行庫的命令是:sudo apt-get install libc6:i386。如果你現在在終端中執行這個命令,它會提示你:E:未發現軟體包 libc6
我們需要做下面的一系列的設定。

我的樹莓派安裝的系統是:https://www.raspberrypi.org/downloads/noobs/裡面的:NOOBS Offline and network install

1.1 設定 dpkg

dpkg”是“Debian Package”的簡寫。我們第一件要做的事情是dpkg去接受不屬於本系統結構機制而是X86機子的程式包(Package)。

sudo dpkg --add-architecture i386

1.2 編輯 apt 軟體源 sources.list 配置檔案 和 sources.list.d 路徑裡面的每一個配置檔案

因為我們現在的軟體源配置檔案裡面都是ARM相關的軟體源網站。我們要想使用x86體系的軟體,就要在軟體源配置檔案裡新增x86軟體源的下載網站。
如果我們直接就這個新增,軟體源配置檔案裡同時又兩個不同體制的軟體源的下載網站,這樣的話,如果x86 和 ARM 中的某個軟體的名字相同,安裝這個軟體的時候,就會報錯。所以我們要在配置檔案中,每一個軟體源網址前面指定它是 x86 的 還是 ARM 的。

所以,現在將當前 /etc/apt/sources.list 配置檔案 和 /etc/apt/sources.list.d路徑裡面的每一個配置檔案 中的軟體源網址前面新增:[arch=armhf]

/etc/apt/sources.list 配置檔案是:軟體原始檔。
/etc/apt/sources.list.d 路徑裡面的配置檔案是:第三方軟體的源。

使用預設的文字編譯器:leafpad 開啟設定軟體源的檔案:(leafpad類似於windows系統裡面的記事本軟體。)

sudo leafpad /etc/apt/sources.list
# 和
sudo leafpad /etc/apt/sources.list.d/raspi.list

例如:配置檔案中的一行可能是下面這個樣子的:

deb http://archive.raspbian.org/raspbian jessie main contrib non-free

修改為:

deb [arch=armhf] http://archive.raspbian.org/raspbian jessie main contrib non-free

修改後,儲存。重新開一個終端,執行:sudo apt-get update試試看,和以前執行時一樣的,沒有什麼變換。

1.3 新增一個 i386 配置檔案

要想下載 i386 軟體,就需要先新增 x86 的軟體源的映象網站。
所以現在,我們在/etc/apt/sources.list.d路徑裡面,建立一個名為 i386.list的配置檔案。

cd /etc/apt/sources.list.d/
sudo leafpad i386.list

將下面的內容複製到裡面,並儲存檔案:

deb [arch=i386] http://ftp.debian.org/debian/ jessie main contrib non-free
deb [arch=i386] http://ftp.debian.org/debian/ jessie-updates main contrib non-free
deb [arch=i386] http://security.debian.org/ jessie/updates main contrib non-free

我們上面的配置這裡指定的軟體源是:Debian官方的軟體源,如果你想使用國內Debian軟體源的映象網站也可以。

其中jessie是版本號,早期的版本號是wheezy,我們要下載最新的,所以這裡使用:jessie


1.4 更新你本地的apt快取

重新開啟一個終端,執行:

sudo apt-get update

這可以要執行幾分鐘的時間。

解決公鑰無法驗證的問題。
請參考我寫的部落格:樹莓派 Learning 002 裝機後的必要操作 — 01 新增軟體源 之新增公鑰 之 解決“由於沒有公鑰,無法驗證下列簽名”問題


1.5 安裝 qemu-user 和 binfmt-support

這是一個非常重要的環節。我們已經配置了軟體源,是為了讓樹莓派能夠下載x86可執行二進位制可執行檔案。現在我們要做的事情是:為了使用它們,我們給系統設定它們在程式水平的虛擬化環境。

聽起來很難設定,其實很簡單,只需要執行下面的命令即可:

sudo apt-get install binfmt-support qemu-user

1.6 安裝 x86 libc

sudo apt-get install libc6:i386

搞定!

擴充套件:
對於國內的朋友,使用Debian官方的軟體源網站,下載的速度是很慢的。安裝一個幾M的東西都要等大半天。

解決辦法:就是使用Debian軟體源的國內映象網站,而不使用Debian官方的軟體源網站。使用阿里雲 國內映象網站:http://archive.raspbian.org/

映象網站 和 原軟體源網站的對應關係:

raspbian/Debian 官方 軟體源網站 阿里雲 國內映象網站
raspbian http://archive.raspbian.org/raspbian http://mirrors.aliyun.com/raspbian/raspbian/
Debian http://ftp.debian.org/debian/ http://mirrors.aliyun.com/debian/
Debian http://security.debian.org/ http://mirrors.aliyun.com/debian-security/

你將1.2.1.2 節 和 1.2.1.3 節 裡面的配置檔案中對應的網站進行相應的修改,並儲存。在執行sudo apt-get update命令,速度一定會變快的。

參考網站:
Using binary x86 drivers on your Raspberry Pi
https://www.lhinderberger.de/pi/2016/01/27/raspberry-pi-binary-x86-drivers.html
下載libc6:i386
https://packages.debian.org/sid/i386/libc6/download在這個網站中,點選Asia裡面的:ftp.cn.debian.org/debian
Ubuntu中/etc/apt/sources.list.d目錄的作用(以Ubuntu12.04為例)
http://blog.csdn.net/twlkyao/article/details/10360353
關於ubuntu的sources.list總結
http://www.cnblogs.com/jiangz/p/4076811.html

相關文章