![一点背景](https://linux22.com/image/155048/%E4%B8%80%E7%82%B9%E8%83%8C%E6%99%AF.png)
我有一个 Raspberry PI,需要它才能使用 CentOS 7。我还尝试使用 papirus eInk 显示屏(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
如果你幸运的话;所有包名称都相同;但也可能有些不同。尝试一下:)