我有一个干净的VPS,与Ubuntu 14.04 LTS X64。 并试图以下内容:
# 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
但是最后一个失败了:
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)
我无法弄清楚什么是错的。 这是非常基本的。
正确的方法是在您的terminal中启用UTF-8支持。
首先检查您的区域设置:
locale -a
然后,为en_US安装一个UTF-8语言环境,如下所示:
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
我面临同样的问题。 我认为这个错误是因为名字中的非西方字符(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)
尝试安装一个语言包,这可能会纠正您的编码问题,例如
sudo apt-get install language-pack-en
这将为所有支持的软件包(包括Python)提供英文翻译数据更新。
请参阅: UnicodeEncodeError:'ascii'编解码器不能编码字符 。
尝试以下操作:
请删除,如果你已经安装了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。