一點背景

一點背景

我有一個 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

在這裡我會谷歌搜尋三件事:

  1. centos 套件 python pil
  2. centos 套件 python smbus
  3. 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

如果你幸運的話;所有包名稱都相同;但也可能有些不同。試試看:)

相關內容