PPAからPHP5.6をインストール中にUbuntuで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

しかし、最後の1つで失敗します。

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 2015

@TomaszKowalczykも私のために働いた、ありがとう!
2015

回答:


12

適切な方法は、端末でUTF-8サポートを有効にすることです。

まず、ロケールを確認します。

locale -a

次に、UTF-8ロケールをインストールします。en_USの場合、例は次のようになります。

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がLinuxのために捨てられているので素晴らしいと言っているわけではありません。それはとてもイライラします。気分がどうであれ、この完璧なプロセスに感謝します。
marcnz 2015

どういたしまして!一部のディストリビューション(特にVPSプロバイダーによってカスタマイズされたサーバーエディション)は最小限に抑えられており、私が知る限り、より少ないスペース、リソースのためのUTF-8サポートパッケージが含まれていません。
Arda

うーん...それは動作しませんCannot add PPA: 'ppa:ondrej/php5-5.6'. Please check that the PPA name or format is correct.
カービィ

@カービィPPA名が変わったからです。私はそれに応じて私の答えを更新しました。1つのppaにondrej/phpは、作成者が管理するすべてのPHPバージョンが含まれています。
Arda

4

私も同じ問題に直面しました。名前に西洋以外の文字が含まれているためにエラーが発生したと思います(Ond \ xc5 \ x99ejSur )。

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

php -vを使用して、5.6がインストールされているかどうかを確認します。

# 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 2015

これを機能させるには、インポートしたPPAキーが必要です。
Arda
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.