PPA'dan PHP5.6 yüklerken Ubuntu'daki UnicodeDecodeError


10

Ubuntu 14.04 LTS x64 ile temiz bir VPS'im var. Ve aşağıdakileri denedim:

# 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

Ama sonra sonuncusunda başarısız olur:

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)

Neyin yanlış olduğunu anlayamadım. Her şey oldukça basit.


1
Docker imajını oluştururken bu hatayı aldım, zincir ekleyerek zincirlemeyi deneyin export LANG=C.UTF-8, benim için çalıştı.
Tomasz Kowalczyk

Benim için de çalışan @TomaszKowalczyk, teşekkürler!
hardsetting

Yanıtlar:


12

Doğru yol terminalinizde UTF-8 desteğini etkinleştirmektir.

İlk önce yerel ayarlarınızı kontrol edin:

locale -a

Ardından, en_US için aşağıdaki gibi bir UTF-8 yerel ayarı yükleyin:

locale-gen en_US.UTF-8

O zaman dışa aktarmanız gerekir:

export LANG=en_US.UTF-8

Sonra add-apt-repositorykomut iyi çalışır.

Bu hala çalışmıyorsa, bu satırı kullanmayı deneyin:

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


Yardımın için çok teşekkür ederim. Çalışmasını sağlamanın tek yolu buydu. Peki Linux neden işleri bu kadar karmaşık hale getiriyor? Uyulması gereken bir standart olamaz, böylece hepsi sorunsuz çalışır mı? Windows'un Linux için attığım için harika olduğunu söylemiyorum, ama tanrım her zaman çalışmayan veya hata atmayan bir şey var. Çok sinir bozucu. Ruh halim ne olursa olsun, bu mükemmel süreç için teşekkür etmek istiyorum.
marcnz

Rica ederim! Bazı dağıtımlar (özellikle VPS sağlayıcıları tarafından özelleştirilmiş sunucu sürümleri) en az düzeyde pişirilir ve daha az alan, kaynakları anlayabildiğim kadarıyla UTF-8 destek paketleri içermez.
Arda

Hm ... Cannot add PPA: 'ppa:ondrej/php5-5.6'. Please check that the PPA name or format is correct.
Kirby

@Kirby PPA adı değiştiği için. Cevabımı buna göre güncelledim. Bir ppa ondrej/phpartık yazarı tarafından tutulan tüm PHP sürümlerini barındırıyor.
Arda

4

Aynı sorunla karşılaştım. Hata adı Batıdaki olmayan karakterler (Ond \ xc5 \ x99ej Sur ) nedeniyle geliyor düşünüyorum.

Php5'i kaldırdığınızdan emin olun.

Depoyu manuel olarak ekleyebilirsiniz:

# 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 yüklü olup olmadığını php -v ile kontrol edin:

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


0

Takip etmeyi dene:

  • Eğer zaten php5 yüklediyseniz kaldırın.

  • Şimdi yeni bir kurulum yapmaya çalışın.

  • gedit /etc/apt/sources.listAşağıdaki kodları eklemek için çalıştırın :

    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
    

    Lütfen kaynak kodunu düzenlemeye ve eklemeye dikkat edin.

  • Kaydedin ve güncelleyin. (1234)

    sudo apt-get update  
    
  • Şimdi php5'i yüklemeyi deneyin.

Kurulduktan sonra php5-5.6 almalısınız.


Bunu denedim. İşe yaramadı. Bu arada php olmadan yeni bir kurulum oldu.
fiibaar

Bunun çalışması için içe aktarılan ppa anahtarlarına ihtiyacınız vardır.
Arda
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.