2020-12-14

YumRepo Error:All mirror URLs are not using http or file【解决方法】
近日使用centos6的伙伴会遇到yum源无法下载的问题,报错如下:
YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid release/repo/arch combination

[Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 404 Not Found”

错误:Cannot find a valid baseurl for repo: base

面向百度开发的伙伴可能和我一样翻遍了各类相关帖子,诸如关停防火墙;重置DNS 8.8.8.8;切换成国内阿里云,网易等yum源,修改 /etc/yum.repos.d/CentOS-Base.repo文件等方法,依旧没法通过yum命令调用资源
什么原因呢?

CentoS 6 停止维护更新日期:2020年11月30日

CentOS 7 停止维护更新日期:2024年6月

CentOS 8 停止维护更新日期:2029年5月

2020年12月2日,centos官方停止了对centos6的所有更新,并且下架了包括官方所有的centos6源,目前阿里、163、清华等centos6源已无法使用。

如果需要使用centos6 源,可以使用vault.centos.org作为centos的更新源。

修改文件/etc/yum.repos.d/CentOS-Base.repo为以下内容

[centos-office]
name=centos-office
failovermethod=priority
baseurl=https://vault.centos.org/6.10/os/x86_64/
gpgcheck=1
gpgkey=https://vault.centos.org/6.10/os/x86_64/RPM-GPG-KEY-CentOS-6
<think>首先,用户的问题是:了解使用 `adb shell date -s '2020-12-07 14:36'` 命令时可能遇到的问题及解决办法,以及该命令的详细用法。具体来说,是关于 `adb shell date -s 'YYYY-MM-DD HH:mm'` 的使用方法和常见问题解决办法。 从系统级指令中,我需要遵守以下规则: - 所有行内数学表达式使用 `$...$` 格式,但在这个上下文中,可能没有太多数学内容,所以我会注意。 - 独立公式使用 `$$...$$` 格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 insky<think> 在回答中引用的段落末尾自然地添加引用标识。 用户提供了三个引用: - [1] 关于 `adb shell date` 修改系统时间和时区,包括设置时区和具体时间命令。 - [2] 关于 ADB 主要操作命令,包括连接设备、安装应用、文件操作等。 - [3] 关于 Shell date 命令详解,特别是处理小时和分钟时可能出现的进制问题。 用户上一次的问题是关于 `adb shell date -s` 命令的用法和问题。我需要基于这些引用构建回答。 关键点: - 命令格式:`adb shell date -s 'YYYY-MM-DD HH:mm'`,用于设置设备的时间。 - 常见问题:可能包括权限问题、时间格式错误、时区设置等。 从引用[1]:有示例命令如 `adb shell su date -s "2024-04-16 18:00:00"`,注意这里用了 `su` 来获取 root 权限。 从引用[3]:讨论了在 shell date 命令中,当小时或分钟以 0 开头(如 08, 09)时,可能会导致 "value too great for base" 错误,因为 shell 可能将其解释为八进制数。解决方案是使用 `10#` 前缀来强制十进制解释。 所以,常见问题可能包括: 1. 权限问题:需要 root 权限才能修改系统时间。引用[1]中的命令使用了 `su`,所以可能需要先获取 root。 2. 时间格式错误:格式必须是 `YYYY-MM-DD HH:mm` 或类似。如果格式不对,命令会失败。 3. 时区问题:修改时间后,可能需要设置时区以确保正确。引用[1]提到设置时区命令如 `adb shell setprop persist.sys.timezone Pacific/Midway`。 4. 数字格式问题:如引用[3]所述,小时和分钟以 0 开头时可能出错。 回答结构: - 先解释命令的详细用法。 - 然后列出常见问题及解决办法。 - 最后生成相关问题。 使用中文回答。 确保回答真实可靠:基于提供的引用和一般知识。 步骤: 1. **命令详细用法**: - 描述命令:`adb shell date -s 'YYYY-MM-DD HH:mm'` 用于设置 Android 设备的系统时间。 - 需要 ADB 连接到设备。 - 格式:年份--日 小时:分钟。 - 可能需要 root 权限。 2. **常见问题及解决办法**: - **权限问题**:需要 root 权限。解决办法:使用 `adb shell su` 来执行命令,如 `adb shell su -c "date -s '2020-12-07 14:36'"`。 - **时间格式错误**:确保格式正确。如果格式无效,命令会失败。解决办法:严格按照 `YYYY-MM-DD HH:mm` 格式输入。 - **时区不一致**:修改时间后,时区可能不匹配。解决办法:先设置时区,使用 `adb shell setprop persist.sys.timezone [时区]`,如 `Asia/Shanghai`。 - **数字格式问题**:如果小时或分钟以 0 开头(如 08, 09),shell 可能误认为是八进制。解决办法:在脚本中,使用 `let` 命令或 `10#` 前缀强制十进制,如引用[3]所示。 - **命令执行失败**:设备可能未连接或 ADB 未授权。解决办法:检查 `adb devices` 确保设备连接。 3. **生成相关问题**:基于主题,生成 3-4 个相关问题。 最终回答结构: - 引言:简要介绍命令。 - 详细用法。 - 常见问题及解决办法。 - 相关问题。 </think> ### adb shell date -s 'YYYY-MM-DD HH:mm' 命令使用方法及常见问题解决办法 `adb shell date -s 'YYYY-MM-DD HH:mm'` 命令用于通过 ADB(Android 调试桥)设置 Android 设备的系统时间。这常用于开发、测试或调试场景,例如模拟特定时间点的事件。命令格式为 `date -s '年--日 小时:分钟'`,其中时间必须以 `YYYY-MM-DD HH:mm` 格式严格指定(例如 `2020-12-07 14:36`)。以下基于引用内容,详细说明用法及常见问题解决方案。 #### 1. 命令详细使用方法 - **基本语法**: ```bash adb shell date -s 'YYYY-MM-DD HH:mm' ``` 例如,设置时间为 202012 月 7 日 14:36: ```bash adb shell date -s '2020-12-07 14:36' ``` 此命令直接在设备上修改系统时间,但通常需要 root 权限才能生效[^1]。 - **完整步骤**: 1. **连接设备**:确保设备通过 USB 或网络连接到计算机,并使用 `adb devices` 验证连接状态[^2]。 2. **获取 root 权限**:大多数设备需要 root 权限来修改系统时间。推荐使用 `su` 命令: ```bash adb shell su -c "date -s '2020-12-07 14:36'" ``` 如果设备已 root,这能避免权限错误[^1]。 3. **验证时间修改**:执行后,使用 `adb shell date` 检查当前时间是否更新。 4. **设置时区(可选)**:时间修改后,时区可能不匹配。使用 `adb shell setprop persist.sys.timezone [时区]` 设置时区,例如 `Asia/Shanghai`: ```bash adb shell setprop persist.sys.timezone Asia/Shanghai ``` 时区列表可通过 `adb shell "getprop persist.sys.timezone"` 查询[^1]。 - **注意事项**: - 时间格式必须精确:年份为 4 位(YYYY),月/日为 2 位(MM/DD),小时/分钟为 2 位(HH:mm)。例如,上午 8 点应写为 `08:00`,而非 `8:00`。 - 在脚本中使用时,建议添加错误处理,如检查命令返回值。 #### 2. 常见问题及解决办法 以下列出使用 `adb shell date -s` 命令时的典型问题,基于引用内容提供解决方案: 1. **权限不足错误(如 "Permission denied")**: - **问题描述**:修改系统时间需要 root 权限,普通用户执行命令可能失败。 - **解决办法**: - 使用 `su` 命令获取 root 权限:`adb shell su -c "date -s 'YYYY-MM-DD HH:mm'"`。 - 如果设备未 root,尝试启用 ADB root 模式:先运行 `adb root`,再执行时间设置命令。 - 验证设备 root 状态:使用 `adb shell whoami` 检查用户是否为 `root`。 2. **时间格式错误或解析失败(如 "date: invalid date")**: - **问题描述**:输入格式不正确(如缺少引号、日期格式错误)或小时/分钟以 0 开头(如 `08`, `09`)导致 shell 误解释为八进制数,引发 "value too great for base" 错误[^3]。 - **解决办法**: - 严格遵守 `YYYY-MM-DD HH:mm` 格式,并用单引号包裹时间字符串。 - 在脚本中处理数字时,强制使用十进制:使用 `let` 命令或 `10#` 前缀。例如: ```bash v_hour=08 v_min=09 let v_hour=10#$v_hour # 强制转换为十进制 let v_min=10#$v_min # 强制转换为十进制 adb shell su -c "date -s '2020-12-07 $v_hour:$v_min'" ``` 这能避免八进制解释问题[^3]。 - 测试格式:先在本地 shell 运行 `date -d 'YYYY-MM-DD HH:mm'` 验证有效性。 3. **时区不一致导致时间偏移**: - **问题描述**:修改时间后,设备时间与实际时区不匹配(如显示时间比设置值快/慢数小时)。 - **解决办法**: - 先设置正确时区:运行 `adb shell setprop persist.sys.timezone [时区]`,例如 `Asia/Shanghai` 或 `Pacific/Midway`。 - 同步时区后重启设备:`adb shell reboot` 使设置生效。 - 查询当前时区:`adb shell "getprop persist.sys.timezone"` 以确保一致性。 4. **命令无响应或设备未连接**: - **问题描述**:ADB 未连接设备、设备离线或未授权。 - **解决办法**: - 检查连接:运行 `adb devices` 确认设备状态为 `device`。 - 重新连接设备:`adb reconnect` 或 `adb connect <device_ip>:<port>`。 - 授权提示:在设备上确认 "允许 ADB 调试" 对话框。 5. **时间修改后重置**: - **问题描述**:设备重启后时间恢复默认(常见于未持久化设置)。 - **解决办法**: - 修改系统属性:结合 `setprop` 命令设置持久化时间,例如 `adb shell "setprop persist.sys.time YYYY-MM-DD.HH:mm"`(具体属性名需根据设备定制)。 - 使用 NTP 同步:如果设备支持,启用网络时间协议:`adb shell settings put global auto_time 1`。 #### 3. 总结 `adb shell date -s` 是高效设置设备时间的工具,但易受权限、格式和时区影响。始终使用 `su` 提权、严格遵循时间格式,并同步时区以避免常见问题。实践中,建议在脚本中添加错误日志以捕获失败原因。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值