UnicodeDecodeError in Ubuntu durante l'installazione di PHP5.6 da PPA


10

Ho un VPS pulito, con Ubuntu 14.04 LTS x64. E ho provato quanto segue:

# 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

Ma poi fallisce all'ultimo:

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)

Non sono riuscito a capire cosa c'è che non va. È tutto abbastanza semplice.


1
Ho appena ricevuto quell'errore durante la creazione dell'immagine Docker, prova a concatenare l'aggiunta di un repository export LANG=C.UTF-8, ha funzionato per me.
Tomasz Kowalczyk,

@TomaszKowalczyk che ha funzionato anche per me, grazie!
dura dal

Risposte:


12

Il modo corretto è abilitare il supporto UTF-8 nel terminale.

Per prima cosa controlla le tue impostazioni locali:

locale -a

Quindi, installare una locale UTF-8, per en_US, l'esempio come segue:

locale-gen en_US.UTF-8

Quindi è necessario esportarlo:

export LANG=en_US.UTF-8

Quindi il add-apt-repositorycomando funzionerà bene.

Se il problema persiste, prova a utilizzare questa riga:

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


Grazie mille per il vostro aiuto. Questo è stato l'unico modo per farlo funzionare. Ma perché Linux rende le cose così complicate? Non può esserci uno standard da seguire affinché tutto funzioni senza intoppi? Non sto dicendo che Windows sia fantastico come lo sto abbandonando per Linux, ma il mio dio c'è sempre qualcosa che non funziona o che genera errori. È così frustrante. Qualunque sia il mio umore, voglio ringraziarvi per questo processo perfetto.
marcnz,

Prego! Alcune distribuzioni (in particolare le edizioni personalizzate dei server da parte dei provider VPS) sono considerate minime e non includono pacchetti di supporto UTF-8 per meno spazio, risorse per quanto posso dire.
Arda,

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

@Kirby È perché il nome PPA è cambiato. Ho aggiornato la mia risposta di conseguenza. L'unica ppa ondrej/phpora contiene tutte le versioni di PHP gestite dal suo autore.
Arda,

4

Ho affrontato lo stesso problema. Penso che l'errore arrivi a causa dei caratteri non occidentali nel nome (Ond \ xc5 \ x99ej Sur ).

Assicurati di aver rimosso php5.

È possibile aggiungere manualmente il repository:

# 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

Verifica con php -v se hai installato 5.6:

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


0

Prova quanto segue:

  • Rimuovi se hai già installato php5.

  • Ora prova a una nuova installazione.

  • Esegui gedit /etc/apt/sources.listper aggiungere i seguenti codici:

    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
    

    Si prega di fare attenzione a modificare e aggiungere il codice sorgente.

  • Salvalo e aggiornalo. (1234)

    sudo apt-get update  
    
  • Ora prova a installare php5.

Dopo l'installazione dovresti ottenere php5-5.6.


Ci ho provato. Non ha funzionato A proposito, è stata una nuova installazione, senza php.
fiibaar,

È necessario importare le chiavi ppa affinché questo funzioni.
Arda,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.