Новые репозитории, которые я, никогда добавляю не находятся?

В 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 (оба должны быть установлены), чтобы получить зависимости рекурсивно.

0
23.01.2015, 22:57
1 ответ

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

Естественно, любые репозитории, которые вы добавили до этого изменения все равно придется исправлять вручную.

1
28.01.2020, 02:51

Теги

Похожие вопросы