我安装了 Xubuntu 12.04。当我运行任何更新或安装时,我确实会收到有关“Linaro”的奇怪警告,并且软件中心无法运行并出现以下错误:
:~$ software-center
ERROR:root:DebFileApplication import
Traceback (most recent call last):
File "/usr/share/software-center/softwarecenter/db/__init__.py", line 4, in <module>
from debfile import DebFileApplication, DebFileOpenError
File "/usr/share/software-center/softwarecenter/db/debfile.py", line 25, in <module>
from softwarecenter.db.application import Application, AppDetails
File "/usr/share/software-center/softwarecenter/db/application.py", line 27, in <module>
import softwarecenter.distro
File "/usr/share/software-center/softwarecenter/distro/__init__.py", line 194, in <module>
distro_instance = _get_distro()
File "/usr/share/software-center/softwarecenter/distro/__init__.py", line 169, in _get_distro
module = __import__(distro_id, globals(), locals(), [], -1)
ImportError: No module named Linaro
WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-9MI6cW/pkcs11: Adresář nebo soubor neexistuje
Traceback (most recent call last):
File "/usr/bin/software-center", line 140, in <module>
from softwarecenter.ui.gtk3.app import SoftwareCenterAppGtk3
File "/usr/share/software-center/softwarecenter/ui/gtk3/app.py", line 50, in <module>
from softwarecenter.db.application import Application
File "/usr/share/software-center/softwarecenter/db/application.py", line 27, in <module>
import softwarecenter.distro
File "/usr/share/software-center/softwarecenter/distro/__init__.py", line 194, in <module>
distro_instance = _get_distro()
File "/usr/share/software-center/softwarecenter/distro/__init__.py", line 169, in _get_distro
module = __import__(distro_id, globals(), locals(), [], -1)
ImportError: No module named Linaro
启动时,显示的是“Linaro”而不是“Xubuntu”发行版。我猜,这个变化是当我将稳定内核更改为当前内核时发生的,当时我的内核与扩展的 nvidia 驱动程序发生冲突。其他一切都运行良好……所以这不是什么大问题,只是有点奇怪。
我以为 Linaro 发行版是针对 ARM 处理器的。我不知道这个发行版名称是怎么来的。我该怎么做才能恢复 Xubuntu 发行版名称?
添加:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Linaro
Description: Linaro 12.11
Release: 12.11
Codename: precise
$ python -c 'import platform; print platform.linux_distribution()'
('Linaro', '12.11', 'precise')
我很确定我已经安装了 12.04 Xubuntu...
$ more /etc/lsb-release
DISTRIB_ID=Linaro
DISTRIB_RELEASE=12.11
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Linaro 12.11"
$ dpkg-query -W base-files
base-files 6.5ubuntur6linaro12.11
$ apt-cache policy base-files
base-files:
Instalovaná verze: 6.5ubuntur6linaro12.11
Kandidát: 6.5ubuntur6linaro12.11
Tabulka verzí:
*** 6.5ubuntur6linaro12.11 0
500 http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu/ precise/main amd64 Packages
100 /var/lib/dpkg/status
6.5ubuntu6.5 0
500 http://cz.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
6.5ubuntu6 0
500 http://cz.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
你是对的,看起来我有他们的 linakro 内核,它确实解决了我的内核-nvidia 问题,但还添加了一些东西......但是除了软件中心功能失调之外,我没有其他麻烦,所以它并没有严重混乱。
答案1
您已安装 Linaro 覆盖 PPA(ppa:linaro-maintainers/overlay),它提供了替换base-files
包,该包已将您系统报告的发行版名称替换为 Linaro。
如果你只想安装与覆盖目的无关的特定软件包,你可以使用 apt 固定以防止自动升级 PPA 软件包。例如:您可以创建一个名为的文件,/etc/apt/preferences.d/linaro-overlay-pin
其内容如下:
Package: *
Pin: release o=LP-PPA-linaro-maintainers-overlay
Pin-Priority: 400
当 PPA 为软件包提供更新的版本号时,这将停止软件包的自动升级。然后,您可以通过指定版本号来从 PPA 安装您特别想要的软件包:
sudo apt-get install foo=1.2-1
但是由于您已经base-files
从 PPA 升级而没有固定,我不确定您还可能升级了什么,以及您需要手动降级什么。
答案2
只需将 /etc/lsb-release 编辑为其原始内容即可:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Xubuntu 12.04"
最后sudo apt-get dist-upgrade
一切正常。我总是忘记碰它,因为电脑每天都要工作。这是我决定重新安装或尝试修复它之前的最后一次尝试。所以它终于修好了,太容易了。