【问题标题】:No releases available for package没有可用于软件包的版本
【发布时间】:2022-01-06 19:40:03
【问题描述】:

我正在尝试在 virtualbox 的 Ubuntu 操作系统中安装一些 pear 包,例如 gnupg,但如果我使用 sudo pecl install gnupg,它会抛出

No releases available for package "pecl.php.net/gnupg"
install failed

这不仅适用于 gnupg,而且适用于所有 pear 包。但我无法确定究竟是什么问题。相同的命令正在我的另一台虚拟机中运行。所以我真的很困惑。请帮忙。

注意:

PEAR Version: 1.9.4
PHP Version: 5.5.9-1ubuntu4
Zend Engine Version: 2.5.0
Running on: Linux udhay-dev 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64

这是 pear 配置(使用pear config-show)显示的内容,

Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels     auto_discover    1
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy       http://foo.bar/
PEAR server [DEPRECATED]       master_server    pear.php.net
Default Channel Mirror         preferred_mirror pear.php.net
Remote Configuration File      remote_config    <not set>
PEAR executables directory     bin_dir          /home/udhay-dev/pear/bin
PEAR documentation directory   doc_dir          /home/udhay-dev/pear/docs
PHP extension directory        ext_dir          /usr/lib/php5/20121212+lfs
PEAR directory                 php_dir          /home/udhay-dev/pear/share/pear
PEAR Installer cache directory cache_dir        /tmp/pear/cache
PEAR configuration file        cfg_dir          /home/udhay-dev/pear/cfg
directory
PEAR data directory            data_dir         /home/udhay-dev/pear/data
PEAR Installer download        download_dir     /tmp/pear/install
directory
PHP CLI/CGI binary             php_bin          /usr/bin/php
php.ini location               php_ini          <not set>
--program-prefix passed to     php_prefix       <not set>
PHP's ./configure
--program-suffix passed to     php_suffix       <not set>
PHP's ./configure
PEAR Installer temp directory  temp_dir         /tmp/pear/install
PEAR test directory            test_dir         /home/udhay-dev/pear/tests
PEAR www files directory       www_dir          /home/udhay-dev/pear/www
Cache TimeToLive               cache_ttl        3600
Preferred Package State        preferred_state  stable
Unix file mask                 umask            2
Debug Log Level                verbose          1
PEAR password (for             password         <not set>
maintainers)
Signature Handling Program     sig_bin          /usr/bin/gpg
Signature Key Directory        sig_keydir       /etc/pear/pearkeys
Signature Key Id               sig_keyid        <not set>
Package Signature Type         sig_type         gpg
PEAR username (for             username         <not set>
maintainers)
User Configuration File        Filename         /home/udhay-dev/.pearrc
System Configuration File      Filename         /etc/pear/pear.conf

当我使用pear clear-cache 时,它会显示,

找不到目录/tmp/pear/cache。

对于命令pear update-channelspear upgrade,我得到了,

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/http.so' - /usr/lib/php5/20121212/http.so: undefined symbol: php_persistent_handle_abandon in Unknown on line 0
Updating channel "doc.php.net"
Channel "doc.php.net" is not responding over http://, failed with message: Connection to `foo.bar:8080' failed: php_network_getaddresses: getaddrinfo failed: Name or service not known
Trying channel "doc.php.net" over https:// instead
Cannot retrieve channel.xml for channel "doc.php.net" (Connection to `foo.bar:8080' failed: php_network_getaddresses: getaddrinfo failed: Name or service not known)
Updating channel "pear.php.net"
Channel "pear.php.net" is not responding over http://, failed with message: Connection to `foo.bar:8080' failed: php_network_getaddresses: getaddrinfo failed: Name or service not known
Trying channel "pear.php.net" over https:// instead
Cannot retrieve channel.xml for channel "pear.php.net" (Connection to `foo.bar:8080' failed: php_network_getaddresses: getaddrinfo failed: Name or service not known)
Updating channel "pecl.php.net"
Channel "pecl.php.net" is not responding over http://, failed with message: Connection to `foo.bar:8080' failed: php_network_getaddresses: getaddrinfo failed: Name or service not known
Trying channel "pecl.php.net" over https:// instead
Cannot retrieve channel.xml for channel "pecl.php.net" (Connection to `foo.bar:8080' failed: php_network_getaddresses: getaddrinfo failed: Name or service not known)

【问题讨论】:

  • 用于清除缓存。尝试创建目录然后看看会发生什么。对于 http.so 尝试 grep -Hrv ";" /etc/php5 | grep -i "extension=" 并查找任何杂散的 php.ini 文件。然后 sudo aptitude purge httpsudo aptitude install http 如果这不起作用。

标签: php pear ubuntu-14.04


【解决方案1】:

你之前试过输入这个吗?

pear clear-cache
pear update-channels
pear upgrade

【讨论】:

  • 这对我有用。在原始安装失败后,我收到了 no release available 错误。不得不在第二次尝试时这样做。
【解决方案2】:

pecl 和 oci8 有这个问题。通过设置代理通过我们的防火墙解决:

sudo pear config-set http_proxy http://username:password@proxy.domain:port

也许这是你的问题?

【讨论】:

    【解决方案3】:

    似乎任何连接问题都可能导致pear install 返回“没有可用的版本”。 pear list-upgradespear update-channels 等其他 pear 命令返回更多有用的错误。

    当 OP 运行 pear update-channels 时,他们收到“php_network_getaddresses: getaddrinfo failed: Name or service not known”错误。所以我的猜测是 OP 在他们的虚拟机上存在某种 DNS 配置问题。

    在我们自己的例子中,我们的 Linux 服务器是一个 AWS EC2 实例。当我们运行pear list-upgrades 时,我们看到“连接超时”消息。所以我们的问题是我们的 AWS 安全组阻止了出站 HTTP 流量。

    【讨论】:

    • 很好的提示,我的问题是以下错误:Connection to ssl://pear.php.net:443' failed: Unable to find the socket transport "ssl" - 你忘了启用吗当你配置 PHP 时,它是什么?
    【解决方案4】:

    在我的例子中,我使用了pecl 二进制而不是pear 二进制,它有助于安装包并摆脱No releases available... 错误。

    我知道 OP 使用了 pecl,但我在使用 php_pear 资源的厨师中遇到完全相同的错误后来到这里,所以我将把它留在这里,以防有人会像我一样找到这个页面。

    【讨论】:

      【解决方案5】:

      我在安装 ev 时遇到了同样的问题,clear-cache 没有工作!

      就我而言,通过重新安装php-pear 解决了问题。

      所以,我尝试了sudo apt remove php-pear 然后sudo apt-get install php-pear

      【讨论】:

        猜你喜欢
        • 2017-08-20
        • 2016-06-27
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-11
        • 2017-06-26
        • 2019-05-01
        相关资源
        最近更新 更多