首页 文章

MAMP:如何升级PEAR

提问于
浏览
21

尝试升级MAMP时,会出现以下错误:

Notice: unserialize(): Error at offset 276 of 1133 bytes in Config.php on line 1050
ERROR: The default config file is not a valid config file or is corrupted.

一些建议如何解决这个问题?

Steps to reproduce:

  • 已安装的MAMP(版本2.0.5)

  • cd /Applications/MAMP/bin/php/php5.3.6/bin

  • sudo ./pear升级梨

  • 以上提到的错误被抛出

Update (1):

基于答案8375349/420953我尝试了两种可能来解决这个问题

  • 答: delete pear.conf

  • rm /Applications/MAMP/bin/php/php5.3.6/conf/pear.conf

  • B: edit pear.conf

  • 更改"php_dir"; s:44到"php_dir"; s: 43

两者都导致错误:

Could not get contents of package "/Applications/MAMP/bin/php/php5.3.6/bin/pear". Invalid tgz file.
upgrade failed

Update (2):

赛跑

  • 哪个梨

结果输出

  • / usr / local / bin / pear

有了这个,我注意到我使用的是PEAR的“本地”版本 .

我把它删除了

  • sudo梨卸载梨

然后尝试升级MAMP版本的PEAR

  • /Applications/MAMP/bin/php/php5.3.6/bin/pear升级梨

这会导致错误

Cannot install, php_dir for channel "pear.php.net" is not writeable by the current user

用 . 升级

  • sudo /Applications/MAMP/bin/php/php5.3.6/bin/pear升级梨

在本地安装(再次) .

赛跑

  • 哪个梨

输出

  • / usr / local / bin / pear

这让我回到了 Update (2) 的起点 . 似乎我无法在MAMP目录下升级PEAR .

Update (3):

我发布了问题

因为我的假设是这个问题的根源与MAMP PEAR配置有关 .

Update (4):

我没有安装本地PEAR版本,这导致了一些问题 . 在安装本地版本(而不仅仅是MAMP)版本之后,更新MAMP版本的工作非常完美 .

4 回答

  • 4

    有确切问题的人似乎已经在this MAMP forum thread解决了这个问题 .

    您可以删除 /Applications/MAMP/bin/php/php5.3.6/conf/pear.conf ,也可以将该文件中的一行从 "php_dir";s:44 更改为 "php_dir";s:43 .

  • 26

    编辑pear.conf:在php_dir路径的末尾添加正斜杠“/”,同时保持s:44解决了我和几个同事的问题 .

  • 2

    我安装了XAMPP,我刚刚删除了/xampp/php/pear.ini,这解决了同样的问题

  • 1

    只是为其他人找到这个答案而迟到了 . 我的PEAR配置有几个问题,而不仅仅是php_dir配置设置 .

    我必须检查所有设置以验证计数是否正确 . 当所有错误修复我的PEAR再次正常工作 .

    在终端中看到此消息:

    Notice: unserialize(): Error at offset 276 of 1133 bytes in Config.php on line 1050
    ERROR: The default config file is not a valid config file or is corrupted.
    
    • 转到您的PEAR配置文件(可能位于此处 /MAMP/bin/php/php7.0.10/conf/pear.conf

    • 转到该文件中的第276个字符,并验证字符串长度是否与字符串之前定义的s43相匹配 .

    • 再次运行PEAR命令(例如 pear version

    • 如果您有更多错误,例如第317个字符,您计算该字符串并在字符串前面的s:XX中写入长度 .

    只是为了澄清其他人发现这个问题 . PEAR Config文件是运行命令时未序列化的序列化对象 .

    序列化对象看起来像 s:5:"value" ,其中s:5定义字符串的长度 .

相关问题