add-apt-repository가 Python 오류를 발생시킵니다 : UnicodeDecodeError : 'ascii'코덱이 바이트 0xc5를 디코딩 할 수 없습니다


27

최신 PHP5 패키지를 설치하려고하므로 필요한 repo (sudo add-apt-repository ppa : ondrej / php5)를 추가하면 결과입니다.

    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)

우분투 12.04 서버에서 실행


1
기본 파이썬 설치를 망쳤습니까 (예 : python3.2를 / usr / bin / python에 심볼릭 링크 하시겠습니까?)-apt는 12.04의 시스템 기본 python2.7을 사용해야합니다. ls -l $(which python)게시물에 결과를 추가 할 수 있습니까 ?
스틸 드라이버

lrwxrwxrwx 1 root root 2013 년 4 월 10 일 / usr / bin / python-> python2.7 apt-add-repo (Python iiirc와 혼동되는)를 얻기 위해 패키지를 설치했습니다
James Heald

이 경우 분명히 python3.2를 사용하는 이유를 이해할 수 없습니다-죄송합니다
steeldriver

답변:


66

software-properties-common은 버그가 있으므로 시간이 있으면 software-properties-common의 버그로보고하십시오.

리포지토리를 추가 할 때 특정 유니 코드 로캘을 사용 하는 이슈 트래커 에서 더 나은 해결 방법이 지적되었습니다.

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

6

인코딩 문제를 해결할 수있는 언어 팩을 설치하십시오. 예 :

sudo apt-get install language-pack-en

지원되는 모든 패키지 (Python 포함)에 대한 영어 번역 데이터 업데이트가 제공됩니다.

참조 : UnicodeEncodeError : 'ascii'코덱이 문자를 인코딩 할 수 없습니다 .

그렇지 않으면 로케일 설정을 수동으로 설정하십시오 (예 :

$ 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

관련 : apt-get 설치시 로케일 오류


2

도커에 있다면 이것이 나를 위해 일했습니다.

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

후 :

RUN apt-get update
RUN apt-get install -y php7.2

0

나를 위해 PHP 전에 php5-compat를 추가하면 우분투 16에서 내 문제가 해결되었습니다.

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

그리고

sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.