add-apt-repositoryはPythonエラーをスローします:UnicodeDecodeError: 'ascii'コーデックはバイト0xc5をデコードできません


27

最新のPHP5パッケージをインストールしようとして、リポジトリを追加します(sudo add-apt-repository ppa:ondrej / php5)必要なのはこれです:

    Traceback (most recent call last):
  File "/usr/lib/python3.2/threading.py", line 740, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 141, in run
    self.add_ppa_signing_key(self.ppa_path)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 234, in add_ppa_signing_key
    tmp_export_keyring, signing_key_fingerprint, tmp_keyring_dir):
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 186, in _verify_fingerprint
    got_fingerprints = self._get_fingerprints(keyring, keyring_dir)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 178, in _get_fingerprints
    output = subprocess.check_output(cmd, universal_newlines=True)
  File "/usr/lib/python3.2/subprocess.py", line 516, in check_output
    output, unused_err = process.communicate()
  File "/usr/lib/python3.2/subprocess.py", line 811, in communicate
    stdout = _eintr_retry_call(self.stdout.read)
  File "/usr/lib/python3.2/subprocess.py", line 456, in _eintr_retry_call
    return func(*args)
  File "/usr/lib/python3.2/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)

Ubuntu 12.04サーバーで実行する


1
デフォルトのpythonインストール(たとえば、python3.2を/ usr / bin / pythonにシンボリックリンクします)を台無しにしましたか?-aptは12.04のシステムデフォルトpython2.7を使用する必要があります。の出力をls -l $(which python)投稿に追加できますか?
スチールドライバー14

lrwxrwxrwx 1ルートルート9 2013年4月10日の/ usr / binに/ pythonの-私はのapt-アドオンレポを得るために、パッケージをインストールした> python2.7(これはPythonのiiircと台無し)
ジェームズ・ヒールド

その場合には、それは明らかにpython3.2を使っている理由を私は理解していない-申し訳ありません
steeldriver

回答:


66

software-properties-commonはバグがあるため、時間があれば、software-properties-commonのバグとして報告してください。

リポジトリを追加するときに特定のUnicodeロケールを使用する問題トラッカーより良い回避策が指摘されました。

LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php5-5.6

6

エンコードに関する問題を修正する可能性のある言語パックをインストールしてみてください。例えば

sudo apt-get install language-pack-en

これにより、サポートされているすべてのパッケージ(Pythonを含む)の英語の翻訳データが更新されます。

UnicodeEncodeError: 'ascii' codec ca n't encoding characterを参照してください。

それ以外の場合は、ロケール設定を手動で設定します、例えば

$ locale -a | grep "^en_.\+UTF-8"
en_GB.UTF-8
en_US.UTF-8
$ export LC_ALL=en_GB.UTF-8
$ export LANG=en_GB.UTF-8

関連:apt-getインストールのロケールエラー


2

あなたがドッカーにいる場合、これは私のために働いた:

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

その後:

RUN apt-get update
RUN apt-get install -y php7.2

0

PHPの前にphp5-compatを追加して、ubuntu 16の問題を解決しました。

sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php5-compat

その後

sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.