Error fetching https://gems.ruby-china.org/: bad response Not Found 404 报错解决办法

本文介绍了当遇到Ruby-China服务域名更换导致访问错误时的解决方案。只需要将URL中的.org后缀改为.com即可正常访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因是 服务域名 更换了,打开报错地址:https://gems.ruby-china.org/,会有如下图提示,将org后缀改为com即可

如果刚好解决了你的问题,表扬我一下!嘿嘿

[root@localhost yum.repos.d]# cpanm -f Net::HTTP GSSAPI Params::Validate Test::Mock::LWP LWP::Authen::Negotiate --> Working on Net::HTTP Fetching https://www.cpan.org/authors/id/O/OA/OALDERS/Net-HTTP-6.23.tar.gz ... OK Configuring Net-HTTP-6.23 ... OK Building and testing Net-HTTP-6.23 ... OK Successfully installed Net-HTTP-6.23 --> Working on GSSAPI Fetching https://www.cpan.org/authors/id/A/AG/AGROLMS/GSSAPI-0.28.tar.gz ... OK Configuring GSSAPI-0.28 ... N/A ! Configure failed for GSSAPI-0.28. See /root/.cpanm/work/1752032584.51560/build.log for details. --> Working on Params::Validate Fetching https://www.cpan.org/authors/id/D/DR/DROLSKY/Params-Validate-1.31.tar.gz ... OK Configuring Params-Validate-1.31 ... OK Building and testing Params-Validate-1.31 ... OK Successfully reinstalled Params-Validate-1.31 --> Working on Test::Mock::LWP Fetching https://www.cpan.org/authors/id/L/LU/LUKEC/Test-Mock-LWP-0.08.tar.gz ... OK Configuring Test-Mock-LWP-0.08 ... OK Building and testing Test-Mock-LWP-0.08 ... OK Successfully reinstalled Test-Mock-LWP-0.08 --> Working on LWP::Authen::Negotiate Fetching https://www.cpan.org/authors/id/A/AG/AGROLMS/LWP-Authen-Negotiate-0.08.tar.gz ... OK Configuring LWP-Authen-Negotiate-0.08 ... OK ==> Found dependencies: GSSAPI, LWP::Debug --> Working on LWP::Debug Fetching https://www.cpan.org/authors/id/O/OA/OALDERS/libwww-perl-6.79.tar.gz ... OK Configuring libwww-perl-6.79 ... OK Building and testing libwww-perl-6.79 ... OK Successfully installed libwww-perl-6.79 ! Installing the dependencies failed: Module 'GSSAPI' is not installed ! Bailing out the installation for LWP-Authen-Negotiate-0.08. 4 distributions installed [root@localhost yum.repos.d]#
最新发布
07-10
<think>我们正在解决用户使用cpanm安装GSSAPI和LWP::Authen::Negotiate失败的问题。根据之前的分析,这两个模块的安装失败通常是因为系统缺少必要的开发库和工具。特别是GSSAPI模块需要Kerberos开发库(krb5-devel)的支持。 解决方案步骤: 1. 安装系统级依赖 - 确保已安装Kerberos开发库(krb5-devel)和必要的开发工具 - 启用EPEL仓库(如果尚未启用)以获取更多Perl模块的RPM包 2. 使用系统包管理器安装(推荐) - 如果系统有可用的Perl模块包,优先使用yum/dnf安装 3. 使用CPAN安装(当系统包不可用时) - 配置CPAN以使用系统库 4. 环境检查 具体步骤: 步骤1:安装系统依赖 对于CentOS/RHEL: ```bash # 启用EPEL仓库 sudo yum install -y epel-release # 安装开发工具链和Kerberos开发包 sudo yum groupinstall -y "Development Tools" sudo yum install -y krb5-devel perl-devel ``` 步骤2:尝试使用系统包安装Perl模块 ```bash sudo yum install -y perl-GSSAPI perl-LWP-Authen-Negotiate ``` 如果步骤2成功,则问题解决。如果系统包不存在或版本太旧,则进入步骤3。 步骤3:使用CPAN安装 ```bash # 安装cpanm(如果尚未安装) sudo yum install -y perl-App-cpanminus # 设置环境变量,告知cpanm使用系统库(重要!) export KRB5_INCLUDE=/usr/include/kerberos5 export KRB5_LIB=/usr/lib64 # 安装GSSAPI cpanm --configure-args="INC=-I$KRB5_INCLUDE LIBS=-L$KRB5_LIB" GSSAPI # 安装LWP::Authen::Negotiate cpanm LWP::Authen::Negotiate ``` 注意:上面的路径(KRB5_INCLUDE和KRB5_LIB)可能需要根据系统实际情况调整。例如,在32位系统上,库路径可能是/usr/lib。 步骤4:验证安装 ```bash perl -MGSSAPI -e 'print "GSSAPI installed\n"' perl -MLWP::Authen::Negotiate -e 'print "LWP::Authen::Negotiate installed\n"' ``` 如果验证命令没有报错,则安装成功。 常见问题及解决: 1. 如果安装GSSAPI时出现头文件或库文件找不到的错误,请检查krb5-devel是否安装正确,并确认头文件和库文件的路径。 可以使用以下命令查找: find /usr -name 'gssapi.h' find /usr -name 'libgssapi_krb5.so*' 2. 如果系统存在多个Kerberos版本(如Heimdal和MIT Kerberos),需要确保使用的开发文件与系统运行时一致。 总结:通过安装系统开发依赖,并正确配置cpanm使用这些依赖,可以成功安装GSSAPI和LWP::Authen::Negotiate模块。 相关问题: 1. 如何确认krb5-devel已经正确安装? 2. 如何设置环境变量以便cpanm能够找到Kerberos库? 3. 安装过程中出现链接错误(如undefined reference)如何解决? 4. 如何为Perl模块指定非标准路径的Kerberos开发文件? 5. 在非CentOS/RHEL系统(如Ubuntu)上如何解决相同问题?</think>### 解决 cpanm 安装 GSSAPI 和 LWP::Authen::Negotiate 失败问题 #### 🔧 核心问题分析 1. **GSSAPI 安装失败** - 需要 Kerberos 开发库(`krb5-devel`) - 缺少头文件:`gssapi/gssapi.h` - 需要指定 Kerberos 库路径 2. **LWP::Authen::Negotiate 依赖问题** - 依赖于 GSSAPI 模块 - 需要正确配置 HTTP 工具链 --- #### ✅ 完整解决方案(分步操作) ##### 步骤 1:安装系统级依赖 ```bash # 安装 Kerberos 开发库(关键) sudo yum install -y krb5-devel # 安装 Perl 开发工具链 sudo yum install -y perl-devel perl-ExtUtils-MakeMaker # 安装编译工具 sudo yum install -y gcc make openssl-devel ``` ##### 步骤 2:配置 Kerberos 路径环境变量 ```bash # 设置 Kerberos 头文件和库路径 export KRB5_INCLUDE=/usr/include/krb5 export KRB5_LIB=/usr/lib64 # 32位系统用 /usr/lib # 验证路径存在 ls $KRB5_INCLUDE/gssapi/gssapi.h # 应显示文件 ``` ##### 步骤 3:强制安装 GSSAPI 模块 ```bash # 指定 Kerberos 路径安装 cpanm --configure-args="INC=-I$KRB5_INCLUDE LIBS=-L$KRB5_LIB" GSSAPI # 备用方案:手动安装 cpanm --force https://cpan.metacpan.org/authors/id/A/AG/AGROLMS/GSSAPI-0.28.tar.gz ``` ##### 步骤 4:安装 LWP::Authen::Negotiate ```bash # 先安装 HTTP 工具链 cpanm LWP::Protocol::https Mozilla::CA # 安装主模块 cpanm LWP::Authen::Negotiate ``` ##### 步骤 5:验证安装 ```bash perl -MGSSAPI -e 'print "GSSAPI OK\n"' perl -MLWP::Authen::Negotiate -e 'print "LWP::Authen::Negotiate OK\n"' ``` --- #### ⚠️ 常见错误处理 **错误 1:`gssapi.h not found`** ```bash # 查找实际路径 find /usr -name gssapi.h # 通常位于 /usr/include/gssapi 或 /usr/include/krb5 # 更新环境变量 export KRB5_INCLUDE=$(dirname $(find /usr -name gssapi.h | head -1)) ``` **错误 2:`Undefined symbol: gss_acquire_cred`** ```bash # 添加 Kerberos 库链接 export PERL_MM_OPT="LIBS='-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err'" cpanm --reinstall GSSAPI ``` **错误 3:证书验证失败** ```bash # 跳过 SSL 验证(临时方案) cpanm --notest --skip-satisfied LWP::Authen::Negotiate ``` --- #### 🌐 替代安装方案 ```bash # 使用系统包安装(如果可用) sudo yum install -y \ perl-GSSAPI \ perl-LWP-Authen-Negotiate # 使用 Docker 隔离环境 docker run -it perl:5.36 cpanm LWP::Authen::Negotiate ``` --- #### 📊 验证结果 | 模块 | 测试命令 | 成功标志 | |------------------------|----------------------------------------|------------------| | `GSSAPI` | `perl -MGSSAPI -e 'exit 0'` | 返回码 0 | | `LWP::Authen::Negotiate` | `perl -MLWP::Authen::Negotiate -e 1` | 无错误输出 | --- #### ❓ 相关问题 1. 如何修复 `gss_accept_sec_context` 符号未定义错误? 2. 在非 Kerberos 环境中如何绕过 GSSAPI 依赖? 3. 如何为 cpanm 永久设置 Kerberos 库路径? 4. 使用 `--force` 安装后模块无法加载怎么办? 5. 如何调试 Perl 模块的 C 语言层链接错误? > 提示:提供 `perl -V` 和 `ls -l /usr/lib*/libgssapi*` 输出可进一步诊断问题[^1]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值