我遇到了 polybar 依赖问题,我正在使用 Ubuntu20.04。apt-get install
出现以下错误:
Package python-xcbgen is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'python-xcbgen' has no installation candidate
然后我尝试了sudo apt-get install python3-xcbgen
,成功安装(v 1.14-2)。但是,polybar 安装仍然抱怨找不到 python-xcbgen。
我正在使用 Anaconda python,所以我不知道它是否与它有任何关系。
请提供建议。谢谢
答案1
构建 polybar 似乎无法与 anaconda 很好地配合使用。建议的方法是卸载它或在构建 polybar 时完全禁用它。
来自已知的问题Polybar 维基页面:
问题:在使用 Anaconda 的系统上,编译 polybar 可能会失败,并出现以下错误消息之一:
Missing required python module: xcbgen
ERROR: could not calc required_start_align of Struct "xcb.Setup"
Cairo was not compiled with support for the xcb backend
普遍的问题是,在很多情况下,Anaconda 提供的库和程序不能用于构建 Polybar。
修复:如果您不需要 Anaconda,最简单的修复方法是卸载它。
如果您不能或不想卸载 Anaconda,我们需要强制 polybar 不使用 Anaconda 提供的任何资源。这可以通过在构建 polybar 之前从终端中的 $PATH 和 $PKG_CONFIG_PATH 环境变量中临时删除指向 anaconda 的任何路径来实现。
有人报告说 conda deactivate 会为您针对当前打开的终端执行此操作。如果这不起作用,请尝试手动执行:
例如,如果您的 PATH 变量包含:
/home//anaconda2/bin:/home//bin:...:/usr/bin
删除 /home//anaconda2/bin 并重新导出变量:
导出 PATH=/home//bin:...:/usr/bin
对 PKG_CONFIG_PATH 执行相同操作(尽管此变量通常已经为空)。现在您应该能够使用 build.sh 脚本或 cmake 和 make 构建 polybar。确保您执行的是干净的构建(重新下载所有 polybar 源)。
最后一句非常重要。您必须进行一次干净的构建。这意味着删除您下载的 polybar 源并重新下载它们。