add-apt-repository melempar kesalahan Python: UnicodeDecodeError: codec 'ascii' tidak dapat mendekodekan byte 0xc5

27

Mencoba menginstal paket-paket PHP5 terbaru dan saya menambahkan repo (sudo add-apt-repository ppa: ondrej / php5) yang saya butuhkan dan ini hasilnya:

    Traceback (most recent call last):
  File "/usr/lib/python3.2/threading.py", line 740, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 141, in run
    self.add_ppa_signing_key(self.ppa_path)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 234, in add_ppa_signing_key
    tmp_export_keyring, signing_key_fingerprint, tmp_keyring_dir):
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 186, in _verify_fingerprint
    got_fingerprints = self._get_fingerprints(keyring, keyring_dir)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 178, in _get_fingerprints
    output = subprocess.check_output(cmd, universal_newlines=True)
  File "/usr/lib/python3.2/subprocess.py", line 516, in check_output
    output, unused_err = process.communicate()
  File "/usr/lib/python3.2/subprocess.py", line 811, in communicate
    stdout = _eintr_retry_call(self.stdout.read)
  File "/usr/lib/python3.2/subprocess.py", line 456, in _eintr_retry_call
    return func(*args)
  File "/usr/lib/python3.2/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 92: ordinal not in range(128)

Berjalan di Server Ubuntu 12.04

James Heald
sumber
1
Sudahkah Anda mengacaukan instalasi python default (misalnya, symlinking python3.2 ke / usr / bin / python?) - apt harus menggunakan sistem default python2.7 pada 12.04. Bisakah Anda menambahkan output ls -l $(which python)ke posting Anda?
steeldriver
lrwxrwxrwx 1 root root 9 Apr 10 2013 / usr / bin / python -> python2.7 Saya memang menginstal paket untuk mendapatkan apt-add-repo (yang mengacaukan Python iiirc)
James Heald
Dalam hal ini saya tidak mengerti mengapa itu tampaknya menggunakan python3.2 - maaf
steeldriver

Jawaban:

67

Software-properties-common adalah buggy, jadi jika ada waktu, tolong laporkan ini sebagai bug di software-properties-common.

Solusi yang lebih baik ditunjukkan dalam pelacak masalah yang menggunakan lokal unicode tertentu saat menambahkan repositori

LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php5-5.6
oerdnj
sumber
6

Coba instal paket bahasa yang dapat memperbaiki masalah Anda dengan penyandian, mis

sudo apt-get install language-pack-en

Ini akan memberikan pembaruan data terjemahan bahasa Inggris untuk semua paket yang didukung (termasuk Python).

Lihat: UnicodeEncodeError: codec 'ascii' tidak dapat menyandikan karakter .

Jika tidak, atur pengaturan lokal secara manual, mis

$ locale -a | grep "^en_.\+UTF-8"
en_GB.UTF-8
en_US.UTF-8
$ export LC_ALL=en_GB.UTF-8
$ export LANG=en_GB.UTF-8

Terkait: kesalahan lokal dengan apt-get install

kenorb
sumber
2

Jika Anda berada di buruh pelabuhan, ini bekerja untuk saya:

RUN LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php

Setelah:

RUN apt-get update
RUN apt-get install -y php7.2
JRichardsz
sumber
0

Bagi saya menambahkan php5-compat sebelum php menyelesaikan masalah saya di ubuntu 16.

sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php5-compat

lalu

sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
Zareef Ahmed
sumber