UnicodeDecodeError di Ubuntu saat menginstal PHP5.6 dari PPA

10

Saya memiliki VPS bersih, dengan Ubuntu 14,04 LTS x64. Dan Mencoba yang berikut ini:

# 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

Tetapi kemudian gagal pada yang terakhir:

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)

Saya tidak tahu apa yang salah. Itu semua sangat mendasar.

fiibaar
sumber
1
Baru saja mendapatkan kesalahan itu ketika membangun gambar Docker, coba chaining menambahkan repositori dengannya export LANG=C.UTF-8, itu berhasil untuk saya.
Tomasz Kowalczyk
@TomaszKowalczyk yang bekerja untuk saya juga, terima kasih!
menetas

Jawaban:

12

Cara yang tepat adalah mengaktifkan dukungan UTF-8 di terminal Anda.

Pertama periksa lokasi Anda:

locale -a

Kemudian, instal UTF-8 locale, untuk en_US, contohnya sebagai berikut:

locale-gen en_US.UTF-8

Maka Anda perlu mengekspornya:

export LANG=en_US.UTF-8

Maka add-apt-repositoryperintah itu akan bekerja dengan baik.

Jika ini masih tidak berfungsi, coba gunakan baris ini:

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

Arda
sumber
Terima kasih banyak atas bantuannya. Ini adalah satu-satunya cara saya membuatnya bekerja. Tetapi mengapa Linux membuat hal-hal begitu rumit? Tidak bisakah ada standar yang harus diikuti sehingga semua bekerja dengan lancar? Saya tidak mengatakan Windows itu bagus karena saya membuangnya untuk Linux, tetapi Tuhan selalu ada sesuatu yang tidak berfungsi atau melempar kesalahan. Sangat frustasi. Apa pun suasana hati saya, saya ingin mengucapkan terima kasih atas proses yang sempurna ini.
marcnz
Sama-sama! Beberapa distribusi (terutama edisi server yang disesuaikan oleh penyedia VPS) dimasak minimal, dan tidak termasuk paket dukungan UTF-8 untuk ruang yang lebih sedikit, sumber daya sejauh yang saya tahu.
Arda
Hm ... Tidak berfungsiCannot add PPA: 'ppa:ondrej/php5-5.6'. Please check that the PPA name or format is correct.
Kirby
@ Kirby Itu karena nama PPA diubah. Saya telah memperbarui jawaban saya sesuai dengan itu. Satu ppa ondrej/phpsekarang menampung semua versi PHP yang dikelola oleh pembuatnya.
Arda
4

Saya menghadapi masalah yang sama. Saya pikir kesalahan terjadi karena karakter bukan barat dalam nama (Ond \ xc5 \ x99ej Sur ).

Pastikan Anda menghapus php5.

Anda dapat menambahkan repositori secara manual:

# 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

Periksa dengan php -v apakah Anda sudah menginstal 5.6:

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

Coba yang berikut ini:

  • Silakan hapus jika Anda sudah menginstal php5.

  • Sekarang coba instalasi baru.

  • Jalankan gedit /etc/apt/sources.listuntuk menambahkan kode berikut:

    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
    

    Harap hati-hati mengedit dan menambahkan kode sumber.

  • Simpan dan perbarui. (1234)

    sudo apt-get update  
    
  • Sekarang coba instal php5.

Setelah diinstal Anda harus mendapatkan php5-5.6.

shanmugam2138
sumber
Sudah mencobanya. Tidak bekerja Itu adalah instalasi baru, tanpa php di omong-omong.
fiibaar
Anda perlu kunci ppa yang diimpor agar ini berfungsi.
Arda