PPA에서 PHP5.6을 설치하는 동안 우분투에서 UnicodeDecodeError


10

Ubuntu 14.04 LTS x64와 함께 깨끗한 VPS가 있습니다. 그리고 다음을 시도했습니다.

# Upgrade The Base Packages

apt-get update
apt-get upgrade -y

# Add A Few PPAs To Stay Current

apt-get install -y software-properties-common

apt-add-repository ppa:nginx/stable -y
apt-add-repository ppa:rwky/redis -y
apt-add-repository ppa:chris-lea/node.js -y
apt-add-repository ppa:ondrej/php5-5.6 -y

그러나 마지막에는 실패합니다.

root@xxx:~# apt-add-repository ppa:ondrej/php5-5.6 -y

gpg: keyring `/tmp/tmp9jdzm9kw/secring.gpg' created
gpg: keyring `/tmp/tmp9jdzm9kw/pubring.gpg' created
gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com
gpg: /tmp/tmp9jdzm9kw/trustdb.gpg: trustdb created
gpg: key E5267A6C: public key "Launchpad PPA for Ond\xc5\x99ej Sur�" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.4/threading.py", line 868, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 687, in addkey_func
    func(**kwargs)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 370, in add_key
    return apsk.add_ppa_signing_key()
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 261, in add_ppa_signing_key
    tmp_export_keyring, signing_key_fingerprint, tmp_keyring_dir):
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 210, in _verify_fingerprint
    got_fingerprints = self._get_fingerprints(keyring, keyring_dir)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 202, in _get_fingerprints
    output = subprocess.check_output(cmd, universal_newlines=True)
  File "/usr/lib/python3.4/subprocess.py", line 605, in check_output
    output, unused_err = process.communicate(inputdata, timeout=timeout)
  File "/usr/lib/python3.4/subprocess.py", line 936, in communicate
    stdout = _eintr_retry_call(self.stdout.read)
  File "/usr/lib/python3.4/subprocess.py", line 487, in _eintr_retry_call
    return func(*args)
  File "/usr/lib/python3.4/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)

무엇이 잘못되었는지 알 수 없었습니다. 모두 매우 기본입니다.


1
Docker 이미지를 빌드 할 때 해당 오류가 발생 export LANG=C.UTF-8했습니다. 와 저장소를 추가하여 체인을 연결 하십시오.
Tomasz Kowalczyk

나에게도 도움이 된 @TomaszKowalczyk, 감사합니다!
hardsetting

답변:


12

올바른 방법은 터미널에서 UTF-8 지원을 활성화하는 것입니다.

먼저 로케일을 확인하십시오.

locale -a

그런 다음 en_US의 UTF-8 로케일을 다음과 같이 설치하십시오.

locale-gen en_US.UTF-8

그런 다음 내 보내야합니다.

export LANG=en_US.UTF-8

그러면 add-apt-repository명령이 제대로 작동합니다.

그래도 여전히 작동하지 않으면 다음 줄을 사용해보십시오.

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


도와 주셔서 정말 감사합니다. 이것이 내가 작동시키는 유일한 방법이었습니다. 그런데 왜 리눅스가 그렇게 복잡해 집니까? 따라야하는 표준이 없어서 모든 것이 원활하게 작동합니까? Linux 용으로 버리고 Windows가 훌륭하다고 말하지는 않지만 항상 작동하지 않거나 오류가 발생하는 것이 있습니다. 너무 실망 스럽습니다. 내 기분이 어떻든이 완벽한 과정에 감사드립니다.
marcnz

천만에요! 일부 배포판 (특히 VPS 제공 업체의 맞춤형 서버 에디션)은 최소한으로 쿠킹되며, 내가 알 수있는 한 적은 공간과 리소스를위한 UTF-8 지원 패키지를 포함하지 않습니다.
Arda

흠 ... 작동하지 않습니다Cannot add PPA: 'ppa:ondrej/php5-5.6'. Please check that the PPA name or format is correct.
Kirby

@Kirby PPA 이름이 변경 되었기 때문입니다. 그에 따라 답변을 업데이트했습니다. 하나의 ppa는 ondrej/php이제 작성자가 유지 관리하는 모든 PHP 버전을 보유합니다.
Arda

4

나는 같은 문제에 직면했다. 이름에 서양이 아닌 문자 (Ond \ xc5 \ x99ej Sur)로 인해 오류가 발생한다고 생각합니다.

php5를 제거했는지 확인하십시오.

저장소를 수동으로 추가 할 수 있습니다.

# echo "deb http://ppa.launchpad.net/ondrej/php5-5.6/ubuntu trusty main" > /etc/apt/sources.list.d/ondrej-php5-5_6-trusty.list

# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C

# apt-get install php5

5.6이 설치되어 있는지 PHP -v로 확인하십시오 :

# php -v
PHP 5.6.6-1+deb.sury.org~trusty+1 (cli) (built: Feb 20 2015 11:22:10) 


0

다음을 시도하십시오 :

  • 이미 php5를 설치했다면 제거하십시오.

  • 이제 새로 설치하십시오.

  • gedit /etc/apt/sources.list다음 코드를 추가하려면 실행하십시오 .

    deb http://ppa.launchpad.net/ondrej/php5-5.6/ubuntu trusty main 
    deb-src http://ppa.launchpad.net/ondrej/php5-5.6/ubuntu trusty main
    

    소스 코드를 편집하고 추가하십시오.

  • 저장하고 업데이트하십시오. (1234)

    sudo apt-get update  
    
  • 이제 php5를 설치하십시오.

설치 후 php5-5.6을 받아야합니다.


그것을 시도했다. 작동하지 않았다. 그건 그렇고 PHP가없는 새로운 설치였습니다.
fiibaar

이 기능을 사용하려면 가져온 ppa 키가 필요합니다.
Arda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.