首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法获取linux tarball

无法获取linux tarball
EN

Stack Overflow用户
提问于 2017-01-26 22:32:05
回答 3查看 2.1K关注 0票数 8

我正在尝试使用crosstool-ng构建一个工具链,我已经全部设置好了,选择了usage上描述的cpu,现在我可以构建我的工具链了。但是,当我输入ct-ng build时,它将取消以下错误:

代码语言:javascript
复制
$ ct-ng build
[INFO ]  Performing some trivial sanity checks
[INFO ]  Build started 20170126.135517
[INFO ]  Building environment variables
[EXTRA]  Preparing working directories
[EXTRA]  Installing user-supplied crosstool-NG configuration
[EXTRA]  =================================================================
[EXTRA]  Dumping internal crosstool-NG configuration
[EXTRA]    Building a toolchain for:
[EXTRA]      build  = x86_64-pc-linux-gnu
[EXTRA]      host   = x86_64-pc-linux-gnu
[EXTRA]      target = powerpc-e500v2-linux-gnuspe
[EXTRA]  Dumping internal crosstool-NG configuration: done in 0.09s (at 00:02)
[INFO ]  =================================================================
[INFO ]  Retrieving needed toolchain components' tarballs
[EXTRA]    Retrieving 'linux-4.3'
[ERROR]
[ERROR]  >>
[ERROR]  >>  Build failed in step 'Retrieving needed toolchain components' tarballs'
[ERROR]  >>        called in step '(top-level)'
[ERROR]  >>
[ERROR]  >>  Error happened in: do_kernel_get[scripts/build/kernel/linux.sh@741]
[ERROR]  >>        called from: main[scripts/crosstool-NG.sh@590]
[ERROR]  >>
[ERROR]  >>  For more info on this error, look at the file: 'build.log'
[ERROR]  >>  There is a list of known issues, some with workarounds, in:
[ERROR]  >>      '/usr/local/share/doc/crosstool-ng/crosstool-ng-1.22.0/B - Known issues.txt'
[ERROR]
[ERROR]  (elapsed: 0:31.10)
[00:31] / make: *** [build] Error 1

build.log中,我得到以下内容:

代码语言:javascript
复制
[EXTRA]    Retrieving 'linux-4.3'
...
...
...
[DEBUG]    Not at this location: "http://www.kernel.org/pub/linux/kernel/v4.x/longterm/v4.3/linux-4.3.zip"
[DEBUG]    Trying 'http://www.kernel.org/pub/linux/kernel/v4.x/longterm/linux-4.3.zip'
[DEBUG]    ==> Executing: 'wget' '--passive-ftp' '--tries=3' '-nc' '--...
[DEBUG]    Not at this location: "http://www.kernel.org/pub/linux/kernel/v4.x/longterm/linux-4.3"
[ERROR]
[ERROR]  >>
[ERROR]  >>  Build failed in step 'Retrieving needed toolchain components' tarballs'
[ERROR]  >>        called in step '(top-level)'
[ERROR]  >>
[ERROR]  >>  Error happened in: do_kernel_get[scripts/build/kernel/linux.sh@741]
[ERROR]  >>        called from: main[scripts/crosstool-NG.sh@590]
[ERROR]  >>
[ERROR]  >>  For more info on this error, look at the file: 'build.log'
[ERROR]  >>  There is a list of known issues, some with workarounds, in:
[ERROR]  >>      '/usr/local/share/doc/crosstool-ng/crosstool-ng-1.22.0/B - Known issues.txt'
[ERROR]
[ERROR]  (elapsed: 0:31.10)

我知道它无法检索内核,有什么方法可以手动下载它并告诉脚本tarball位于哪里?

好的,我意识到wget http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.gz会失败,但是wget --no-check-certificate http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.gz会通过代理很好地下载tarball。因此,我将/usr/binwget~origand wrote a wrapper/usr/bin/wget`复制/usr/bin/wget,如下所示:

代码语言:javascript
复制
#!/bin/bash

/usr/bin/wget~orig --no-check-certificate $1

但这似乎也不起作用,我现在在build.log中得到了以下内容

代码语言:javascript
复制
[DEBUG]    ==> Executing: 'wget' '--passive-ftp' '--tries=3' '-nc' '--progress=dot:binary' '-T' '10' '-O' '/home/ron/src/toolchain/work/.build/tarballs/linux-4.3.tar.xz.tmp-dl' 'http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz'
[ALL  ]    wget~orig: missing URL
[ALL  ]    Usage: wget~orig [OPTION]... [URL]...
[ALL  ]
[ALL  ]    Try `wget~orig --help' for more options.
[DEBUG]    Not at this location: "http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz"
[DEBUG]    Trying 'http://www.kernel.org/pub/linux/kernel/v4.x/longterm/v4.3/linux-4.3.tar.xz'
[DEBUG]    ==> Executing: 'wget' '--passive-ftp' '--tries=3' '-nc' '--progress=dot:binary' '-T' '10' '-O' '/home/ron/src/toolchain/work/.build/tarballs/linux-4.3.tar.xz.tmp-dl' 'http://www.kernel.org/pub/linux/kernel/v4.x/longterm/v4.3/linux-4.3.tar.xz'
[ALL  ]    wget~orig: missing URL
[ALL  ]    Usage: wget~orig [OPTION]... [URL]...

它如何自动知道我最初的wget二进制文件现在被称为wget~orig?和试图使用这个,而不是我现在位于/usr/bin/wget的包装(是的,我已经添加了x权限并尝试了它,从外壳(利用我的包装脚本)的wget http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.gz现在工作得很好.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-27 19:42:58

好吧,

由于wget是用多个(9)参数调用的,所以我将包装器脚本(at /usr/bin/wget)固定如下:

代码语言:javascript
复制
#!/bin/bash

/usr/bin/wget~orig --no-check-certificate $1 $2 $3 $4 $5 $6 $7 $8 $9

这似乎成功地下载了ct-ng所需的源tarball。

票数 1
EN

Stack Overflow用户

发布于 2017-03-15 11:54:03

您可以配置ct-ng以防止它下载源代码:

代码语言:javascript
复制
ct-ng menuconfig
  • 转到Path and misc options
  • *** Downloading ***中,选择[*] Forbid downloads
  • 出口..。

当您尝试构建您的工具链(ct-ng build)时,构建过程将期望您将手动下载的tarball放在~/src中。

只要检查一下build.log,就知道需要什么焦油球了。

票数 2
EN

Stack Overflow用户

发布于 2021-07-25 13:06:47

您可以配置ct-ng将额外的参数传递给wget:ct-ng menuconfig。

  • 转到Path and misc options
  • *** Downloading ***中,在Connection timeout选项下
  • 选择(--passive-ftp --tries=3 -nc --progress=dot:binary...
  • 添加--no-check-certificate
  • 出口

这是不安全的,但是它允许您放弃为wget创建其他答案中提到的包装脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41884168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档