我有一個 Raspberry PI,需要它才能使用 CentOS 7。https://github.com/PiSupply/PaPiRus)
驅動程式和相依性安裝說明使用 Apt-Get,但 CentOS 使用 YUM。安裝這些依賴項的最佳/最簡單方法是什麼?
我看過有關如何在 CentOS 上安裝 Apt-Get 的說明,但一致認為這是一個壞主意。 YUM 在 CentOS 上要好得多。
答案1
這是一個複雜的問題,因為兩者由於多種原因不相容,因此從一種到另一種的直接轉換通常非常棘手。
一點背景
apt
( apt-get
) 是一個套件管理器,用於安裝 Debian 風格的.dpkg
套件及其相依性。
yum
是一個套件管理器,用於安裝紅帽.rpm
風格的套件及其依賴項。
在您開始討論 .dpkg
和.rpm
文件存在一個更普遍的問題,.dpkg
/apt-get
依賴關係將被找出樹莓派。 這些與 CentOS 的依賴項不符。 這兩個作業系統不僅使用不同的軟體包名稱,而且還安裝了各自軟體包的不同版本。這意味著即使在其他類似 Debian 的作業系統(例如 Ubuntu)上,您可能仍然遇到問題。
簡而言之,.dpkg
/apt-get
包在 CentOS 上對你沒有用處。
增加了複雜性
由於您嘗試安裝的套件與 python 相關,因此需要注意第三個套件管理器:點。這能與 yum 一起安裝,但請記住,當您使用 yum 安裝時,您還允許 yum 在有新軟體包可用時升級這些軟體包。使用 pip,您需要要求 pip 定期升級,因為 yum 不會為您執行此操作。
你能做什麼?
您可以嘗試在命令列上搜尋:例如yum search pil
。但老實說,我更喜歡谷歌來完成這項任務。它為您提供了有關包名稱同義詞的更多上下文。您實際上沒有太多選擇,只能自己處理指定的依賴項並為 CentOS 和/或 pip 找到類似的軟體包。這將需要在 Google 上花費大量時間來建立正確的清單。
例如(假設您使用yum
而不是安裝pip
),指令為:
sudo apt-get install python-pil python-smbus python-dateutil -y
在這裡我會谷歌搜尋三件事:
- centos 套件 python pil
- centos 套件 python smbus
- centos 套件 python dateutil
最後引導我使用 yum 安裝軟體包:
yum install python-pillow i2c-tools-python python-dateutil
請注意,python-pil
變成了python-pillow
.這是同一軟體包的一個分支,但希望能夠相容。另請注意,python-smbus
變成了i2c-tools-python
. 這似乎是 Centos 上正確的套件名稱
如果你真的找不到合適的 python 套件作為 RPM 那麼你可能不得不這樣做使用 pip 安裝它。
如果這不起作用
正如我之前提到的,套件版本可能不匹配,這意味著依賴項失敗。當你安裝了所有可以安裝的東西後,它仍然無法運作。您的下一步應該是返回軟體維護人員(在 GitHub 上)並詢問他們禮貌地如果他們願意的話幫助您找出 CentOS 的依賴關係。
答案2
我想給你帶來麻煩的部分是這樣的:
# Install dependencies
sudo apt-get install git bc i2c-tools fonts-freefont-ttf whiptail make gcc -y
# For Python 2
sudo apt-get install python-pil python-smbus python-dateutil -y
# For Python 3
sudo apt-get install python3-pil python3-smbus python3-dateutil -y
首先,我建議確保安裝了 epel-release(yum 的附加儲存庫):
yum -y install epel-release
現在您可以搜尋每個軟體包的等效項並安裝它:例如:
yum search i2c
給我:
i2c-tools.x86_64 : A heterogeneous set of I2C tools for Linux
i2c-tools-eepromer.x86_64 : Programs for reading / writing i2c / smbus eeproms
i2c-tools-python.x86_64 : Python bindings for Linux SMBus access through i2c-dev
幸運的是,該包具有相同的名稱;我可以這樣運行:
yum install i2c-tools
如果你幸運的話;所有包名稱都相同;但也可能有些不同。試試看:)