В Ubuntu 14.04 также установлен файл lsb_release.py
для Python 2.7 и lsb_release
, похоже, работает и под python2.7. Вы можете попробовать это сделать:
python2.7 /usr/bin/lsb_release
Если это сработает, сделайте резервную копию файла /usr/bin/lsb_release
и измените первую строку на чтение:
#! /usr/bin/python2.7
(вы можете поэкспериментировать с опциями -Es
, я бы пропустил их частично).
После повторного запуска apt-get
, переустановите питон3 и его зависимости. Вы можете определить прямые зависимости, используя apt-cache зависит от python3
, и использовать apt-rdepends
или reverse-depends
(оба должны быть установлены), чтобы получить зависимости рекурсивно.
add-apt-repository
автоматически определяет кодовое имя вашего дистрибутива и не предоставляет для этого опций. Разумеется, оно не может волшебным образом сопоставить версию Debian с Ubuntu, и чтобы сделать это, вам придётся отредактировать /etc/lsb-release
, что может нарушить другие вещи. Это связано с тем, что add-apt-repository
вызывает SoftwareProperties.add_source_from_shortcut
, который, в свою очередь, использует aptsources.distro.get_distro()
для определения кода:
aptsources.distro.get_distro(id=None, codename=None, description=None, release=None)
Check the currently used distribution and return the corresponding distriubtion class that supports distro specific features.
If no paramter are given the distro will be auto detected via a call to lsb-release
(Нет, это не мое написание. )
Итак, если вы чувствуете, что все в порядке, отредактируйте /etc/lsb-release
и измените DISTRIB_CODENAME
на соответствующую версию Ubuntu (так как она является целью большинства Launchpad PPA), такую как trusty
.
Или вы можете построить реальную линию. ppa:имя пользователя/ppa-name
переводится как:
add-apt-repository https://ppa.launchpad.net/username/ppa-name/ubuntu $(lsb_release -sc)
Конечно, вы замените $(lsb_release -sc)
на trusty
и так далее. Также вам нужно будет получить ключ GPG вручную и добавить его. У этого также есть недостаток, который заключается в том, что вместо создания хорошего нового файла в /etc/apt/sources.list.d
, запись добавляется в /etc/apt/sources.list
.
Похоже, что вы должны изменить как DISTRIB_ID
, так и DISTRIB_CODENAME
, чтобы их значения совпадали:
$ lsb_release -sc
trusty
$ sudo sed 's/trusty/wheezy/' -i /etc/lsb-release
$ lsb_release -sc
wheezy
$ sudo add-apt-repository ppa:conky-companions/ppa
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 91, in <module>
sp = SoftwareProperties(options=options)
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 109, in __init__
self.reload_sourceslist()
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 599, in reload_sourceslist
self.distro.get_sources(self.sourceslist)
File "/usr/lib/python3/dist-packages/aptsources/distro.py", line 89, in get_sources
(self.id, self.codename))
aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Ubuntu/wheezy
$ sudo sed 's/trusty/wheezy/;s/Ubuntu/Debian/' -i /etc/lsb-release
$ sudo add-apt-repository ppa:conky-companions/ppa
More info: https://launchpad.net/~conky-companions/+archive/ubuntu/ppa
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keyring `/tmp/tmp19qsp29e/secring.gpg' created
#...
gpg: imported: 1 (RSA: 1)
OK
$ cat /etc/apt/sources.list.d/conky-companions-ppa-wheezy.list
deb http://ppa.launchpad.net/conky-companions/ppa/ubuntu wheezy main
# deb-src http://ppa.launchpad.net/conky-companions/ppa/ubuntu wheezy main
$ sudo rm /etc/apt/sources.list.d/conky-companions-ppa-wheezy.list
$ sudo sed 's/wheezy/trusty/' -i /etc/lsb-release
$ sudo add-apt-repository ppa:conky-companions/ppa
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 91, in <module>
sp = SoftwareProperties(options=options)
#...
aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Debian/trusty
$ sudo sed 's/wheezy/trusty/;s/Debian/Ubuntu/' -i /etc/lsb-release
$ sudo add-apt-repository ppa:conky-companions/ppa
More info: https://launchpad.net/~conky-companions/+archive/ubuntu/ppa
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keyring `/tmp/tmpnz_771l_/secring.gpg' created
#...
OK
Естественно, любые репозитории, которые вы добавили до этого изменения все равно придется исправлять вручную.