首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
宝塔
V2EX  ›  Linux

wget 怎么下载镜像网站的 RPM 包

  •  
  •   plko345 · 2018-06-21 20:19:42 +08:00 · 3775 次点击
    这是一个创建于 512 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用网上搜到的

    wget -r -p -k -np -nc -e robots=off http://mirrors.163.com/centos/7.5.1804/updates/x86_64/Packages/

    各目录都有,但网站下的 RPM 包一个都没有下,只有一个 index.html

    请问要怎么使用 wget 工具完成这个要求

    26 回复  |  直到 2018-06-29 18:52:05 +08:00
        1
    lyog   2018-06-21 20:32:37 +08:00 via iPhone
    难道不是 wget + 完整网址?
        2
    plko345   2018-06-21 20:37:55 +08:00
    @lyog 额,什么意思?我要下载 centos 源下的所有 RPM 包,有几千个
        3
    Lemzon   2018-06-21 20:38:37 +08:00
    这位老哥的意思应该是:用一个(尽可能少的) wget 命令将镜像网站上的 rpm 包全部下载
        4
    yankebupt   2018-06-21 20:41:42 +08:00
    看了一眼参数
    r recursive
    p page-requisites
    k convert links.
    np no parent dir
    nc 不重复下载文件
    e robots off(不被 robots.txt 阻拦)
    好像已经完全够要求了,点开链接一看也是 html 含一堆 rpm 包,真是不知道为啥下不来......
        5
    plko345   2018-06-21 20:42:42 +08:00
    @yankebupt 你能下吗?我只有一个 index.html 啊,我都试了 N 次了
        6
    ysc3839   2018-06-21 20:46:01 +08:00 via Android
    @plko345 #2 搜索 wget mirror
    不过这种软件源要做镜像的话应该用专门的软件。
        7
    yankebupt   2018-06-21 20:47:54 +08:00
    @plko345 wget 1.18 试了下,你贴的原命令能用
        8
    lyog   2018-06-21 20:54:40 +08:00 via iPhone
    @plko345 哈哈我误解了,把网址最后的斜杠去掉有惊喜
        9
    ysicing   2018-06-21 20:54:41 +08:00 via Android
    Yum 仅下载不安装了解一下
        10
    flynaj   2018-06-21 21:20:02 +08:00 via Android
    用 rsync 同步,现在的开源镜像基本都是用这个,效率高速度快,只传输不同部分。
        11
    xcai   2018-06-21 21:28:46 +08:00 via Android
    yum install * 然后 d ?
        12
    plko345   2018-06-21 21:29:33 +08:00
    @flynaj 谢谢,查了下是有这个 rsync:// 的协议下载的,我去了解下

    @ysicing 这个是知道的,但是不知道怎么用 yum 下载源里的所有包,请指教
        13
    Droi   2018-06-21 22:15:26 +08:00
    下载所有的包,还不如用 createrepo 做个本地源
        14
    ls25145   2018-06-21 22:28:46 +08:00
    不知道你目的是要包还是一定要用命令从镜像源下载,如果只是要包的很简单
    http://mirrors.cn99.com/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1804.iso
    iso 文件里有所有的包
        15
    plko345   2018-06-21 22:41:36 +08:00
    @ls25145 这个只包含 base 源,我还要下 updates 和 epel 的
        16
    plko345   2018-06-21 22:42:26 +08:00
    @Droi 不是要先下载好包才能用这个做本地源吗?要不本地源没包呀
        17
    Droi   2018-06-21 23:11:20 +08:00
    @plko345 你可以试试这个教程用 reposync 同步源 https://blog.csdn.net/woshizhangliang999/article/details/78924972
        18
    msg7086   2018-06-21 23:13:19 +08:00
    @plko345 花个几秒钟搜索一下很难吗?
    Let me Google it for you: https://opennodecloud.com/howto/2013/12/02/howto-creating-local-yum-repomirror.html
        19
    plko345   2018-06-22 06:36:52 +08:00 via Android
    @msg7086 亲,我的目的确实是实现本地源,但前提是先将上万个 rpm 包下载到本地,我考虑用 wget 命令可能是最简单的,但尝试多次没有成功,这才是我求助的目的,而不是问怎么实现本地源。不过还是感谢你的帮助
        20
    Droi   2018-06-22 10:51:51 +08:00
    慢慢下载吧,单线程的。想要书的,只能自己抓虫多线程了。
    packages="http://mirrors.163.com/centos/7.5.1804/updates/x86_64/Packages/" && curl $packages >>tt.html &&cat tt.html | awk -F '"' '{print $2}'|while read line; do curl -O ${packages}${line}; done
        21
    msg7086   2018-06-22 13:07:46 +08:00   ♥ 1
    @plko345 我贴的就是从下载到建源的一站式操作。

    "reposync - synchronize yum repositories to a local directory"

    是什么让你放着现成的方案不用,而要坚持用 wget 做镜像的?
        22
    plko345   2018-06-22 13:48:13 +08:00
    @msg7086 谢谢,是无知让我这么做的,以前不知道,非常感谢
        23
    snowonion   2018-06-28 14:34:22 +08:00
        24
    msg7086   2018-06-28 23:40:06 +08:00
    @snowonion Good point. 回头抓一份汉化版放到我自己的网站上 ww
        25
    plko345   2018-06-29 18:06:48 +08:00
    @snowonion 我寻求的帮助就是我在主题中说明的,并且我也很清楚我需要什么样的帮助,那位提供的方法除了下载方案不同,其它并不比我自己写的脚本方便多少,而且还有一些无法满足我建立源的地方
    如果我寻求的帮助是怎么建立源,我会说明的,但很明显我不是来寻问怎么建立源这个问题
        26
    plko345   2018-06-29 18:52:05 +08:00
    @snowonion 你应该找个类似 <怎样理解他人的真实需求> 的文章
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2297 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 13:39 · PVG 21:39 · LAX 05:39 · JFK 08:39
    ♥ Do have faith in what you're doing.