[Other]-安装ruby、ascli、ascp

在这里插入图片描述

最近新接到这样一个需求,将生物原始数据上传到某中心,其中用到ascp命令,阴差阳错的装了ruby、ascli,这里就都一并介绍下安装方式,由于服务器老旧默认安装时ruby2.0,又
升级到2.7等引发的一系列问题,算是学习科普文了。

Ruby 是一种灵活、动态的编程语言,广泛用于 Web 开发、自动化等领域。

ascli 是 IBM Aspera 的命令行接口工具,用于管理和传输大规模数据。

ascp 是 Aspera 的核心传输工具,专注于高速、安全的文件传输,特别适用于在不良网络条件下传输大文件。

  • ruby 地址:https://github.com/ruby/ruby/releases
  • aspera-cli 地址:https://github.com/IBM/aspera-cli
  • ascp地址:https://www.ibm.com/aspera/connect/

1、Ruby 是一种高层次的、解释性的编程语言,因其优雅和简洁而备受欢迎。由 Yukihiro “Matz” Matsumoto 在 1995 年发布,Ruby 的设计理念是要使编程变得更加愉快和高效,注重开发者的幸福感。

  • 动态类型: Ruby 是动态类型语言,变量类型不需要在编译时定义,可以在运行时动态确定。
  • 面向对象: 在 Ruby 中,所有的东西都是对象,包括数字、字符串,甚至类本身。Ruby 提供了完整的面向对象编程特性,例如继承、多态和封装。
  • 丰富的标准库: Ruby 拥有丰富的标准库和第三方库(通过 RubyGems 管理),允许开发者在无需从零开始编写代码的情况下实现复杂功能。
  • Ruby on Rails: Ruby 最出名的框架可能是 Ruby on Rails,一个用于构建 web 应用程序的框架。它采用了“约定优于配置”的理念,使得 web 开发更加快速和简便。

常见用途:

  • Web 开发(通过 Ruby on Rails)
  • 自动化脚本编写
  • 数据分析和处理
  • DevOps 工具开发

2、Ascli (Aspera Command Line Interface)

Ascli 是 IBM Aspera 提供的一个命令行工具,用于通过 CLI 界面与 Aspera 服务进行交互。它提供了一系列命令和选项,允许用户高效管理和传输文件,主要用于大规模数据的传输和管理。

  • 基于 FASP 协议: Aspera 使用 FASP(Fast, Adaptive, Secure Protocol)协议,这是一种比传统 TCP 更加高效、快速的传输协议,特别适合大文件传输。
  • 多种操作: 通过 ascli,用户可以执行多种操作,如文件上传/下载、列表目录、管理文件夹、配置传输设置等。
  • 高度可配置: ascli 提供了丰富的命令行选项,用户可以根据需要调整传输速率、并发数、加密设置等。

常见用途:

  • 大规模数据传输(如多媒体文件、数据备份等)

  • 集成到自动化脚本或 CI/CD 管道中

  • 远程文件管理

    示例命令:

    # 使用 ascli 上传文件到远程服务器ascli fasp upload --host=example.com --username=user --private-key=~/.ssh/id_rsa /local/path/to/file /remote/path/to/destination# 列出远程服务器上的目录ascli server browse --host=example.com --username=user --private-key=~/.ssh/id_rsa /remote/path
    

3、Ascp (Aspera Secure Copy)

Ascp 是 IBM Aspera 提供的一个命令行工具,是 Aspera 软件套件中的核心部分,专门用于高性能的数据传输。它使用 Aspera 的 FASP 协议,以比传统文件传输协议(如 FTP 或 SCP)更快的速度传输文件,尤其适合在高延迟或低带宽网络条件下进行大文件传输。

  • 高性能: ascp 能在长距离、跨国网络传输中保持高效,不受网络延迟和丢包率的影响。
  • 强安全性: 支持数据传输加密和 SSH 认证,确保传输过程中的数据安全。
  • 丰富的命令行选项: 用户可以通过命令行选项自定义传输速率、并发数、带宽使用、加密等参数。
  • 跨平台: ascp 可在多种操作系统上运行,包括 Windows、Linux 和 macOS。

常见用途:

  • 企业级大数据传输

  • 多媒体文件的快速分发

  • 数据备份和恢复

  • 广播和媒体行业的实时传输需求

    示例命令:

    # 使用 ascp 从本地上传文件到远程服务器
    ascp -P 33001 -i /path/to/aspera_private_key /local/file/path user@remote.server.com:/remote/file/path# 从远程服务器下载文件到本地
    ascp -P 33001 -i /path/to/aspera_private_key user@remote.server.com:/remote/file/path /local/file/path
    

1、ruby安装

通过源码安装 Ruby 是一种灵活的安装方式,尤其是在你需要特定版本的 Ruby 或者想要在系统中自定义安装路径时。以下是在 CentOS 上通过源码安装 Ruby 的步骤。

步骤 1: 安装依赖

在安装 Ruby 之前,确保安装了必要的依赖库:

sudo yum update
sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel zlib-devel readline-devel libffi-devel

这些库是 Ruby 依赖的必要组件。

步骤 2: 下载 Ruby 源码

从 Ruby 官方网站 下载你想要安装的 Ruby 版本的源码包,或者直接通过命令下载:

# 下载 Ruby 2.7.0 版本(你可以更换为你需要的版本)
wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0.tar.gz# 解压缩
tar -xzvf ruby-2.7.0.tar.gz
cd ruby-2.7.0

步骤 3: 编译和安装

  1. 配置编译环境

    配置 Ruby 的安装路径和选项(默认安装到 /usr/local 目录):

    ./configure
    

    如果你想安装到自定义目录,例如 /opt/ruby,可以这样做:

    ./configure --prefix=/opt/ruby
    
  2. 编译源码

    编译过程可能需要一些时间,具体取决于你的机器性能:

    make
    
  3. 安装 Ruby

    使用 make install 命令安装 Ruby:

    sudo make install
    

步骤 4: 配置环境变量

如果你将 Ruby 安装到自定义目录(例如 /opt/ruby),需要将 Ruby 的 bin 目录添加到你的 PATH 环境变量中:

export PATH=/opt/ruby/bin:$PATH

为了使这个配置永久生效,可以将上面的命令添加到 ~/.bashrc~/.bash_profile 文件中:

echo 'export PATH=/opt/ruby/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

步骤 5: 验证安装

验证安装是否成功:

ruby -v

你应该会看到刚刚安装的 Ruby 版本信息。

额外步骤:安装 RubyGems 和 Bundler

通常 RubyGems 已经包含在 Ruby 的源码包中,但如果你需要手动安装:

gem update --system

之后,可以安装 bundler

gem install bundler

通过以上步骤,你已经成功通过源码在 CentOS 上安装了 Ruby。

2、安装aspera-cli

前提条件是安装ruby>2.7.0,直接下载源码到bin文件内就能用,无非就是创建一个超链接;

地址:https://github.com/IBM/aspera-cli/releases

详细版本:https://github.com/IBM/aspera-cli/archive/refs/tags/v4.12.0.tar.gz

安装完,直接用 软连接,创建快捷方式

ln -s  ./home/humx/aspera-cli-4.12.0/bin/ascli  /usr/bin/ascliascli --version
4.12.0

3、安装ascp

https://gist.github.com/mfansler/71f09c8b6c9a95ec4e759a8ffc488be3

#!/bin/bash## How to install ascp, in a gist.## The URI below is not persistent! 
## Check for latest link: https://www.ibm.com/aspera/connect/
wget -qO- https://ak-delivery04-mul.dhe.ibm.com/sar/CMA/OSA/0a07f/0/ibm-aspera-connect_4.1.0.46-linux_x86_64.tar.gz | tar xvz## run it
chmod +x ibm-aspera-connect_4.1.0.46-linux_x86_64.sh
./ibm-aspera-connect_4.1.0.46-linux_x86_64.sh## add it to the path now and in the future
export PATH=$PATH:~/.aspera/connect/bin/
echo 'export PATH=$PATH:~/.aspera/connect/bin/' >> ~/.bash_profile

结果:

ascp --versionAspera Connect version 4.1.0.46
ascp version 4.2.0.183928
Operating System: Linux
FIPS 140-2-validated crypto ready to configure
AES-NI Supported
Connect Server License max rate=(unlimited), account no.=1, license no.=53
Enabled settings: connect, cargo, drive and sync2

错误记录

1、cc1: warning: unrecognized command line option “-Wno-tautological-compare” [enabled by default]

编译器版本问题:该警告通常是因为你正在使用的编译器(可能是 GCC 或 Clang)版本较旧,而不支持该选项。

选项拼写错误:也有可能是选项拼写错误或误用了其他选项。

2、ruby 2.7.4源码中没有configure

生成 configure 文件的步骤

你需要使用 autoconf 工具生成 configure 脚本。以下是具体步骤:

  1. 安装必要的工具: 确保系统上安装了 autoconf 和其他必要的开发工具:

    sudo yum install autoconf bison bzip2 gcc-c++ libffi-devel libtool make readline-devel zlib-devel
    
  2. 生成 configure 文件: 如果你是通过 Git 克隆的 Ruby 源码,首先需要进入源码目录并生成 configure 文件:

    cd ruby  # 进入 Ruby 源码目录
    autoconf
    

    运行 autoconf 命令将生成 configure 文件。

  3. 运行 configure 并编译安装: 生成 configure 文件后,你可以继续进行标准的编译安装流程:

    ./configure
    make
    sudo make install
    

3、downloading config.guess … tool/downloader.rb:243:in `rescue in download’: failed to download config.guess (RuntimeError)

config.guess 是一个脚本,用于确定系统的硬件架构和操作系统类型。在 Ruby 源码编译过程中,config.guessconfig.sub 是自动化构建过程中的重要工具,通常由 autoconf 或类似工具下载和使用。

出现 failed to download config.guess 错误通常表示在下载 config.guess 文件时发生了问题。这里有一些解决方案:

解决方案 1: 手动下载 config.guessconfig.sub

  1. 手动下载 config.guessconfig.sub 文件: 从 GNU 的 config 仓库下载最新的 config.guessconfig.sub 文件:

    bash复制代码wget https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
    wget https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
    
  2. 将下载的文件放入源码目录: 将下载的文件复制到 Ruby 源码的根目录下:

    bash复制代码cp config.guess /path/to/ruby/source/
    cp config.sub /path/to/ruby/source/
    
  3. 重新运行 autoconf

    cd /path/to/ruby/source
    autoconf
    

解决方案 2: 确保网络连接正常

有时,下载失败可能是因为网络问题。请确保你的网络连接正常并且可以访问外部服务器。

解决方案 3: 使用备用下载源

如果官方源不可用,尝试使用备用源下载 config.guessconfig.sub

  • 下载备用源

    bash复制代码wget http://ftp.gnu.org/gnu/config/config.guess
    wget http://ftp.gnu.org/gnu/config/config.sub
    

    将它们放在 Ruby 源码目录下。

解决方案 4: 使用预构建的 Ruby 版本

如果你仍然无法解决问题,考虑使用预构建的 Ruby 包,而不是从源码编译:

  • 使用 rbenvRVM 安装 Ruby

    bash复制代码# 安装 rbenv
    curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-installer | bash# 安装 Ruby
    rbenv install 2.7.4
    

    # 安装 RVM
    curl -sSL https://get.rvm.io | bash -s stable# 安装 Ruby
    rvm install 2.7.4
    

通过上述方法,你应该能够解决 config.guess 下载问题并顺利完成 Ruby 的编译和安装。如果遇到其他问题,确保查看编译日志和错误信息以获取更多线索。

4、装ruby-progressabar,/root/.rbenv/versions/2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in require': cannot load such file -- ruby-progressbar (LoadError)

gem install ruby-progressbar --verbose

5、/root/.rbenv/versions/2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require’: cannot load such file – terminal-table (LoadError)

出现 cannot load such file -- terminal-table (LoadError) 错误表明 Ruby 程序在尝试加载 terminal-table gem 时找不到它

gem install terminal-table  --verbose
gem 'terminal-table'
bundle install

对于 rbenv

rbenv global 2.7.4
rbenv rehash

对于 RVM

rvm use 2.7.4

6、/root/.rbenv/versions/2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in require': cannot load such file -- xmlsimple (LoadError)

gem install xml-simple --verbose

7、cannot load such file – symmetric_encryption/core (LoadError)

gem install symmetric-encryption --verbose

8、/root/.rbenv/versions/2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require’: cannot load such file – net/ssh (LoadError)

gem install net-ssh --verbose

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/52322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XSS-DOM

文章目录 源码SVG标签Dom-Clobbringtostring 源码 <script>const data decodeURIComponent(location.hash.substr(1));;const root document.createElement(div);root.innerHTML data;// 这里模拟了XSS过滤的过程&#xff0c;方法是移除所有属性&#xff0c;sanitize…

AI工具革新:国内外设计艺术的融合

在人工智能的浪潮中&#xff0c;全球的创新者和开发者们推出了一系列令人惊叹的工具&#xff0c;它们正以前所未有的速度改变着我们的工作、学习和生活方式。从图像生成到语言处理&#xff0c;从数据分析到自动化设计&#xff0c;AI 作图工具展示了其强大的能力&#xff0c;帮助…

DRF——Filter条件搜索模块

文章目录 条件搜索自定义Filter第三方Filter内置Filter 条件搜索 如果某个API需要传递一些条件进行搜索&#xff0c;其实就在是URL后面通过GET传参即可&#xff0c;例如&#xff1a; /api/users?age19&category12在drf中也有相应组件可以支持条件搜索。 自定义Filter …

面试题详解

前言&#xff1a;这一期我们专门来巩固所学知识&#xff0c;同时见识一些面试题。对知识做出一个总结。 1 不创建临时变量交换两个整数 . 第一种方法 #include<stdio.h> int main() {int a 0;int b 0;scanf("%d %d", &a, &b);printf("交换前…

神经网络算法 - 一文搞懂BERT(基于Transformer的双向编码器)

本文将从BERT的本质、BERT的原理、BERT的应用三个方面&#xff0c;带您一文搞懂Bidirectional Encoder Representations from Transformers | BERT。 Google BERT BERT架构&#xff1a; 一种基于多层Transformer编码器的预训练语言模型&#xff0c;通过结合Tokenization、多种E…

Java基于数据库、乐观锁、悲观锁、Redis、Zookeeper分布式锁的简单案例实现(保姆级教程)

1. 分布式锁的定义 分布式锁是一种在分布式系统中用来协调多个进程或线程对共享资源进行访问的机制。它确保在分布式环境下&#xff0c;多个节点&#xff08;如不同的服务器或进程&#xff09;不会同时访问同一个共享资源&#xff0c;从而避免数据不一致、资源竞争等问题。 2…

等保测评服务的业务连续性规划:确保信息安全服务的韧性

在当前的数字化转型浪潮中&#xff0c;信息安全已成为企业运营的关键一环。等保测评服务作为信息安全合规的重要组成部分&#xff0c;其业务连续性规划对于保障服务的稳定性和客户信息资产的安全至关重要。本文将探讨等保测评服务的业务连续性规划策略&#xff0c;旨在构建一个…

树状数组算法

文章目录 树状数组是什么树状数组与线段树的区别与联系树状数组讲解点修&#xff0c;区查&#xff0c;讲解及模板点查&#xff0c;区修讲解及模板 树状数组是什么 树状数组是一种数据结构&#xff0c;提供O(logn)时间内的单点修改和区间求和操作&#xff0c;比线段树有更优的常…

MD编辑器学习笔记

MD编辑器学习笔记 目录标题文本样式列表图片链接代码片数学公式表格部分总结 目录 目录是使用“[TOC](目录&#xff09;”&#xff0c;记住别忘了加上&#xff08;&#xff09;标题 使用#来确定标题&#xff0c;几个#就是几级标题。记住#后面要加上空格文本样式 tips: 在写正…

物流抓取机器人整体设计方案

一、功能简介 1、运行环境&#xff1a;巡线行驶&#xff08;7路数字循迹&#xff0c;麦克纳姆轮车底盘&#xff09; 2、目标识别&#xff1a;颜色识别&#xff08;Maix-II Dock 视觉模块&#xff09; 3、目标定位&#xff1a;视觉测距&#xff08;Maix-II Dock 视觉模块&#x…

VS实⽤调试技巧(附调试例题)

&#x1f381;&#x1f381;创作不易&#xff0c;关注作者不迷路&#x1f380;&#x1f380; VS实⽤调试技巧&#xff08;附调试例题&#xff09; 前言一、什么是bug&#xff1f;二、什么是调试&#xff08;debug&#xff09;&#xff1f;三、Debug和Release四、VS调试快捷键五…

上书房信息咨询:商业项目调研方法有哪些

商业项目调研是为了了解市场需求、竞争情况和目标受众&#xff0c;从而制定合适的商业策略和项目规划。下面是一些常用的商业项目调研方法&#xff1a; 1、市场调查和问卷调查&#xff1a;通过设计和分发问卷&#xff0c;收集潜在顾客和目标市场的意见、偏好和需求。这可以帮助…

linux dig域名DNS 查询与iptables域名ip访问流量限制;PTR 反向解析从 IP 地址到域名的映射

一、域名 dns查询 在 Linux 系统中&#xff0c;你可以使用多种工具和技术来进行 DNS 查询和 IP 限制。以下是一些常用的方法和工具&#xff1a; DNS 查询 dig 命令&#xff1a; dig 是一个强大的命令行工具&#xff0c;用于查询 DNS 信息。 dig example.com你可以指定查询类型…

dockerfile搭建部署LNMP

目录 实验 架构&#xff1a; 实验步骤&#xff1a; nginx部分 mysql部分 php部分 实验 实验&#xff1a;用dockerfile搭建LNMP论坛 架构&#xff1a; 一台docker虚拟机 docker部署nginx 1.22 指定ip地址172.111.0.10 docker部署mysql 8.0.30 指定ip地址…

标准库标头 <execution> (C++17)学习

此头文件是算法库的一部分。本篇介绍策略类型的一些应用示例&#xff1a; 类 is_execution_policy (C17) 测试一个类是否表示某种执行策略 (类模板) 在命名空间 std::execution 定义 sequenced_policyparallel_policyparallel_unsequenced_policyunsequenced_policy (C17)(C1…

外排序之文件归并排序实现

外排序介绍 外排序是指能够处理极大量数据的排序算法。通常来说&#xff0c;外排序处理的数据不能一次装入内存&#xff0c;只能放在读写较慢的外存储器(通常是硬盘)上。外排序通常采用的是⼀种“排序-归并”的策略。在排序阶段&#xff0c;先读入能放在内存中的数据量&#x…

ACCESS 工具注入实战 凡诺靶场

简介 Access数据库注入攻击是一种常见的网络安全&#xff0c;通过注入SQL代码来获取未授权的数据访问权限。这种攻击利用了应用程序与数据库之间的交互漏洞&#xff0c;攻击者通过输入特定的SQL代码片段来操纵数据库查询&#xff0c;从而绕过应用程序的安全机制&#xff0c;获取…

基于x86 平台opencv的图像采集和seetaface6的人脸特征点功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.2 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的人脸特征点功能,opencv通过摄像头采集视频图像,将采集的视频图像送给seetaface6的人脸特征点模块从而…

Selenium + Python 自动化测试19(补充-读取各种文件数据操作)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 上一篇我们讨论了数据驱动测试中如何完成重复的测试实例&#xff0c;今天我们补充一些读取各种文件的方法。 本篇文章我们讨论一下如何使用读取txt、CSV、Excel文件&#xff0…

多门店多端平台系统小程序源码

&#x1f525;【健身新纪元】多门店多端分开健身系统&#xff0c;打造你的个性化健身体验&#x1f31f; &#x1f3cb;️‍♀️ 一、告别单一&#xff0c;拥抱多元化健身时代 你还在为找不到合适的健身房而烦恼吗&#xff1f;或是想要随时随地开启健身模式&#xff0c;却受限…