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

禁用了 wget 的服务器, 这怎么破?

  •  
  •   yech1990 · 2016-05-17 18:21:56 +08:00 · 7487 次点击
    这是一个创建于 3111 天前的主题,其中的信息可能已经有所发展或是发生改变。

    登陆一个集群, 登陆节点的库都老到掉牙先不说. 没有root 权限, 配置环境各种依赖只能通过下载源码,自己编译.

    更无语的是 wget 被改成 744, 幸亏我机智的 alias wget = "curl -O".

    听闻junest, gentoo_prefix 可以创建一个虚拟的 root 的环境, 可是文件是在编译的过程中会调用 /usr/bin/wget, 生成一个 soft link, 编译了一天的 gentoo 悲剧了.

    这是不是基本无解了????

    第 1 条附言  ·  2016-05-18 22:55:09 +08:00
    说一下目前的"历程"

    1. cp /usr/bin/wget ~/bin/wget

    2. 将 juNest 的下载脚本全部改成 cp XXX ./
    (因为下载地址是 dropbox)

    3. export PATH

    4. 发现命令 ls 都出错
    libcap.so.2 和 glibc 一系列出问题.

    5. 本地目录更新 glibc -->make

    6. 发现 make glibc 报错, 原因是 gcc 版本老得不行

    7. 本地目录更新 gcc --> configure

    8. 发现 GMP , MPFR and MPC 版本太老

    9. 下载 GMP , MPFR and MPC, 编译 gcc
    用了 8 个核编译 gcc, 几个小时过去了, 等待中......


    目测还有很多问题在前面等着.....................
    第 2 条附言  ·  2016-05-18 23:13:25 +08:00

    终于又出问题了...

    $ make

    checking whether the GNU Fortran compiler is working... no
    configure: error: GNU Fortran is not working; please report a bug in http://gcc.gnu.org/bugzilla, attaching /life/users/xingk/yc/tools/gcc-6.1.0-build/x86_64-pc-linux-gnu/libgfortran/config.log
    make[1]: *** [configure-target-libgfortran] Error 1
    In file included from ../../../../gcc-6.1.0/libsanitizer/asan/asan_interceptors.cc:196:0:
    
    43 条回复    2016-05-20 14:16:23 +08:00
    raptium
        1
    raptium  
       2016-05-17 18:24:25 +08:00
    复制一个 wget 不能运行吗?
    yech1990
        2
    yech1990  
    OP
       2016-05-17 18:28:41 +08:00
    @raptium 复制到~/bin 是可行的, 可是虚拟环境生成 soft link 的时候是用绝对路径的
    yech1990
        3
    yech1990  
    OP
       2016-05-17 18:30:31 +08:00
    @raptium 复制后权限依然还是 744, 可是 ower 和 group 变了, 所以权限相当与从 4 变成了 7.
    binux
        4
    binux  
       2016-05-17 18:34:48 +08:00
    在本地编译好了传上去
    Sasasu
        5
    Sasasu  
       2016-05-17 18:36:45 +08:00 via Android
    改一下 path ,把你自己的 bin 目录写到 /bin 前面
    (大概可行
    yech1990
        6
    yech1990  
    OP
       2016-05-17 18:37:44 +08:00
    @binux gentoo prefix 安装过程不只是编译

    先是获取更新, 然后编译, 安装, 还有生成系统文件的链接.

    所以失败不是在编译这一步, 二是生成 soft link 这一步的
    yech1990
        7
    yech1990  
    OP
       2016-05-17 18:41:18 +08:00
    @Sasasu 已近添加了~/bin

    看来是我问题没描述清楚,,,,

    linux 基础的东西我懂, 附上 junest 和 gentoo 的主页, 坐等有缘人.....

    https://github.com/fsquillace/junest

    https://wiki.gentoo.org/wiki/Project:Prefix/Bootstrap
    SlipStupig
        8
    SlipStupig  
       2016-05-17 18:45:00 +08:00
    如果有 python perl 什么的,直接 down
    am241
        9
    am241  
       2016-05-17 18:51:39 +08:00 via Android
    我觉得这种情况修改安装脚本最简单
    lbp0200
        10
    lbp0200  
       2016-05-17 19:10:18 +08:00 via Android
    在 path 前后,有学问
    cxbig
        11
    cxbig  
       2016-05-17 20:11:53 +08:00
    趋向于换 curl 解决,不然找找有没有 php/python/ruby
    yech1990
        12
    yech1990  
    OP
       2016-05-17 20:25:20 +08:00
    @cxbig
    @SlipStupig
    有 python2.4 centos 标配啊

    不过还没理解 python 要怎么耍 才能配置环境?


    现在为了安装一个 opencv 简直疯掉了,无穷无尽的版本依赖, 和 too old... 已经到了修改 glibc 了
    yech1990
        13
    yech1990  
    OP
       2016-05-17 20:27:44 +08:00
    @am241 不简单啊, 修改安装脚本基本就是在修改 linux 源码了

    junest 本身就是一个完整的 linux
    SlipStupig
        14
    SlipStupig  
       2016-05-17 21:18:04 +08:00
    @yech1990 装 pip 然后选择版本
    yech1990
        15
    yech1990  
    OP
       2016-05-17 21:36:01 +08:00
    @SlipStupig pip 只是安装 python 的 packages. 你确定没乱说???
    SlipStupig
        16
    SlipStupig  
       2016-05-17 21:57:56 +08:00
    @yech1990 你不是要装 opencv 嘛
    yech1990
        17
    yech1990  
    OP
       2016-05-17 22:41:32 +08:00
    @SlipStupig opencv 不是 python 的库
    bramblex
        18
    bramblex  
       2016-05-17 22:52:43 +08:00
    修改安装脚本是正解
    ayaseangle
        19
    ayaseangle  
       2016-05-18 00:20:36 +08:00 via Android
    升级系统才是正确的道路
    realpg
        20
    realpg  
       2016-05-18 02:54:16 +08:00
    找个漏洞本地溢出一下……
    qw7692336
        21
    qw7692336  
       2016-05-18 04:02:05 +08:00
    可以全局 alias 吗
    PeterD
        22
    PeterD  
       2016-05-18 08:58:45 +08:00 via Android
    用 linuxbrew
    ety001
        23
    ety001  
       2016-05-18 10:18:00 +08:00
    pheyer
        24
    pheyer  
       2016-05-18 12:21:06 +08:00 via iPhone
    还有一个东西叫 sz/rz
    yech1990
        25
    yech1990  
    OP
       2016-05-18 13:09:11 +08:00
    @ety001 这只是 wget 的封装, 改报错还是报错
    Neveroldmilk
        26
    Neveroldmilk  
       2016-05-18 15:53:10 +08:00
    没救了,升级节点的系统才是根本。
    yech1990
        27
    yech1990  
    OP
       2016-05-18 19:15:31 +08:00
    @ayaseangle @Neveroldmilk 升级是不可能的

    glibc gtk 之类的都老到不能用了, 看来生产环境和自己 PC 还是差太远, 怪自己学艺不精
    wuruxu
        28
    wuruxu  
       2016-05-18 20:49:31 +08:00
    那就在 centos 上编译一个 static 的 wget , 跟动态库就没关系了
    ayaseangle
        29
    ayaseangle  
       2016-05-19 01:45:51 +08:00 via Android
    @yech1990 。。。。。这相当于穿越回 1997 年吧。。。
    linhua
        30
    linhua  
       2016-05-19 02:14:23 +08:00
    需要一个 bash, 支持自动将传入的命令行中的 可执行文件绝对路径名 /usr/bin/wget 替换为 ~/bin/wget 并执行
    yech1990
        31
    yech1990  
    OP
       2016-05-19 10:24:54 +08:00 via Android
    @linhua 嗯 基本是解决了 wget 的问题了

    剩下是因为所有版本过老,这个棘手
    P0P
        32
    P0P  
       2016-05-19 18:35:29 +08:00
    下载源代码编译, configure 的时候指定 prefix 到自己的 home ,然后 path 里面加上相应目录就可以了
    yech1990
        33
    yech1990  
    OP
       2016-05-19 19:44:21 +08:00 via Android
    @P0P 每一步都是这样做的,不是不可能安装上去的
    mengzhuo
        34
    mengzhuo  
       2016-05-20 08:25:01 +08:00 via iPhone
    你确定你会 Linux 么?
    PATH 是有顺序的, env | grep PATH 给我们看看? which wget 也行。
    没有 root 权限而已,自己的运行环境还是可以搞的
    henglinli
        35
    henglinli  
       2016-05-20 08:49:47 +08:00 via iPhone
    wget 在,你把它拷贝到其它地方执行不行?
    owt5008137
        36
    owt5008137  
       2016-05-20 09:45:55 +08:00 via Android
    https://github.com/owent-utils/bash-shell/tree/master/GCC%20Installer/gcc-6
    不知道你的环境行不行,我一直都跟进 gcc 的最新 release 的编译。另外 gcc 源码目录有个好像叫 download_dependency 的脚本,可以直接运行下载依赖库的。不然 gcc 有些 lib 的版本号要求比较恶心,很是折腾
    P0P
        37
    P0P  
       2016-05-20 11:37:01 +08:00
    @yech1990 我在没有 root 权限的服务器上编译上了 htop, wget, tmux 从来没有遇到问题啊,有些依赖有点难装是真的
    julyclyde
        38
    julyclyde  
       2016-05-20 11:49:07 +08:00
    #!/bin/bash
    exec 3<>/dev/tcp/weibo.com/80
    echo -e 'GET / HTTP/1.1\nHost:weibo.com\n\n' >&3
    cat <&3

    注意必须是 bash 不能是别的
    Cu635
        39
    Cu635  
       2016-05-20 12:13:00 +08:00
    lz 是准备干什么?软件体系这么老的集群是说工作中用的还是什么?
    yech1990
        40
    yech1990  
    OP
       2016-05-20 13:10:49 +08:00
    @owt5008137 已经运行了 download_dependency.sh 确实省了些功夫, 不过出的 bug 是 gfortune 编译器的问题, google 不出对应的方案
    yech1990
        41
    yech1990  
    OP
       2016-05-20 13:14:41 +08:00
    @julyclyde 很神奇的脚本 能解释一下第一句么?
    yech1990
        42
    yech1990  
    OP
       2016-05-20 13:16:07 +08:00
    @Cu635 科学计算环境, 主要是为了性能, 不然我就在本地服务器跑了
    julyclyde
        43
    julyclyde  
       2016-05-20 14:16:23 +08:00   ❤️ 1
    @yech1990 你说的第一句是指 exec 吧?重定向“本进程的” 3 号 fd ,到一个 TCP 连接。/dev/tcp/ 貌似是 bash 特有功能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1155 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:28 · PVG 02:28 · LAX 10:28 · JFK 13:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.