为什么我的 Linux 版本名称是 Linaro 而不是 Xubuntu,我该如何修复它?

为什么我的 Linux 版本名称是 Linaro 而不是 Xubuntu,我该如何修复它?

我安装了 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一切正常。我总是忘记碰它,因为电脑每天都要工作。这是我决定重新安装或尝试修复它之前的最后一次尝试。所以它终于修好了,太容易了。

相关内容