zoukankan      html  css  js  c++  java
  • Shell 一键安装命令

    现在是懒人的天下,为了迎合用户的需求,很多开源软件或者包提供的安装步骤都非常简单,大家应该看到不少类似一键安装的命令。下面是几个典型的例子:

    # homebrew 安装
    $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
    
    # nvm 安装, 两种方法
    $ curl https://raw.githubusercontent.com/creationix/nvm/v0.8.0/install.sh | sh
    $ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.8.0/install.sh | sh
    
    # rvm 安装
    $ curl -sSL https://get.rvm.io | bash -s stable
    wget -qO- https://get.rvm.io | bash -s -- arg1 arg2  # -- 表示 参数不做任何处理,bash -s 传参时, $#、$@获取不到正确的值。
    wget -qO- https://get.rvm.io | bash -x -s -- arg1 arg2  # -x 可以打印执行的情况,可以用于调试

    简单粗暴,CMD + C 再加 CMD + V,随手一个 Enter,就搞定了。

    那么这上面的原理是什么样子的呢?其实很简单。

    首先通过 curl 或者 wget 将安装脚本下载下来,将内容输出到标准输出。这一步对应上面的 curl -ssL 或者 wget -qO-,一定要注意将错误或者异常输出过滤掉,保证标准输出的内容就是脚本的内容。

    然后通过管道传递给 shell,shell 在没有指定脚本文件的时候,支持从标准输入读取脚本内容并解释执行。这样将"下载 - 保存 - 安装"这几步操作合到一个命令中完成。

    对于 rvm 的安装又有点特殊,安装脚本需要指定执行参数,bash -s stable 中 -s 之后的部分就是透传给安装脚本的参数,翻译下可以理解的形式是:

    $ curl -sSL https://get.rvm.io > /tmp/rvm_install.sh
    $ bash /tmp/rvm_install.sh stable
    $ rm -f /tmp/rvm_install.sh
    

    PS: curl 的用法,我在 终端下肉眼看不见的东西 曾经提到过。

    不过,建议执行类似一键安装的命令之前,一定要先大致看下安装脚本,避免里面有不安全的代码。

  • 相关阅读:
    Rainmeter 雨滴桌面 主题分享
    行人检測之HOG特征(Histograms of Oriented Gradients)
    const和readonly差别
    ADB命令解析
    Java实现 蓝桥杯VIP 算法训练 接水问题
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
  • 原文地址:https://www.cnblogs.com/linkenpark/p/10153882.html
Copyright © 2011-2022 走看看