Я начинаю в Linux, потому что он мне нужен для моих исследований. Поскольку у меня мало времени и нет поддержки местных экспертов, это опыт самообучения на основе потребностей. Мне нужно установить инструмент, и я получил этот скрипт для установки, загрузки некоторых библиотек и создания зависимостей. Тем не менее я обнаружил, что он содержит некоторые команды, которые работают на RED-HAT, а не в Ubuntu (например, yum). Поскольку мне не хватает знаний, я хотел бы знать, есть ли в коде другие части, которые я должен изменить, чтобы я мог сделать эту работу. Не могли бы вы помочь мне, пожалуйста?
Заранее спасибо.
СЦЕНАРИЙ:
#!/bin/sh
set -e -x
#######################################################################
# cpanm
# version 1.6908
# DEPENDENCIES
yum install -y make gcc tar curl perl perl-Module-Build
# go to bin
cd /usr/bin
# download script, make it exec
curl -LO https://raw.github.com/miyagawa/cpanminus/1.6908/cpanm
chmod +x cpanm
#######################################################################
# prinseq
# version 20.4
# create your base folder
mkdir -p /opt/prinseq
cd /opt/prinseq
BASE_FOLDER=/opt/prinseq
# prinseq native deps: cairo libs
yum install -y cairo cairo-devel
# random prereqs
cpanm Test::Simple@0.98
cpanm Pod::Parser@1.60
# for some reason, this is PathTools@3.40
cpanm Cwd@3.40
cpanm common::sense@3.6
cpanm JSON::XS@2.33
cpanm JSON@2.57
cpanm Getopt::Long@2.39
cpanm Pod::Usage@1.61
cpanm Digest::MD5@2.52
cpanm version@0.9902
cpanm MIME::Base64@3.13
# update module::build
cpanm Module::Metadata@1.000011
cpanm JSON::PP@2.27202
cpanm CPAN::Meta::YAML@0.008
cpanm Parse::CPAN::Meta@1.4404
cpanm CPAN::Meta::Requirements@2.122
cpanm CPAN::Meta@2.130880
cpanm Perl::OSType@1.003
cpanm Module::Build@0.4005
# cairo bindings
cpanm ExtUtils::Depends@0.304
cpanm ExtUtils::PkgConfig@1.14
cpanm Cairo@1.103
# stats related
cpanm Math::MatrixReal@2.08
cpanm Math::Cephes::Matrix@0.51
cpanm Text::SimpleTable@2.03
cpanm Want@0.21
# need old version of contextual::return
cpanm http://search.cpan.org/CPAN/authors/id/D/DC/DCONWAY/Contextual-Return-v0.2.1.tar.gz
cpanm Statistics::PCA@0.0.1
# download prinseq, install
wget http://resources.ohnosequences.com/prinseq/prinseq-lite-0.20.3.tar.gz
tar -xzf prinseq-lite-0.20.4.tar.gz
rm prinseq-lite-0.20.4.tar.gz
chmod +x prinseq-lite-0.20.4/*.pl
# links
ln -sf $BASE_FOLDER/prinseq-lite-0.20.3/*.pl /usr/bin/
Вы спрашиваете, существуют ли части кода кроме yum
вызовы, которые должны быть изменены.
Иногда трудно знать это наверняка, начиная с программного обеспечения, которое Ваш сценарий автоматически загружает и использование (cpanm
) мог иметь ошибки или другие проблемы, которые заставляют его работать по-другому над различными дистрибутивами. Я подозреваю дело не в этом, но я не могу знать наверняка.
Также могут быть другие проблемы. Например, Ваши загрузки сценария cpanm
кому: /usr/bin
, который прекрасен, но:
PATH
в системах RHEL/Fedora, но не Ubuntu, которая могла заставить сценарий перестать работать. Это не имеет место здесь.cpanm
обеспечивается в официальных источниках программного обеспечения Ubuntu. Можно установить его с sudo apt-get update
сопровождаемый sudo apt-get install cpanminus
. Если это установлено, то Вы не должны запускать этот скрипт (как записано), потому что это, вероятно, перезаписало бы существующее cpanm
, то, чтобы заставлять другой файл быть установленным, чем локальная база данных пакета верит, установлен. Поэтому я рекомендую проверить для проверки cpanminus
пакет не установлен перед использованием этого сценария.cpanminus
пакет установлен, можно удалить его, или можно изменить сценарий для не загрузки cpanm
самостоятельно. (Будет ли это работать, зависит от того, насколько конкретный Ваши потребности к определенной версии cpanm
это загружает, но скорее всего это будет работать.) Или Вы могли изменить сценарий для загрузки cpanm
пакет к другому каталогу, как /usr/local/bin
или /opt/bin
. Удостоверяться загруженный сценарием cpanm
тот, который выполняется, удостоверьтесь каталог, на который он загружается, появляется в Вашем PATH
прежде /usr/bin
.После этих слов мы видим, существуют ли какие-либо другие очевидные изменения (помимо изменения yum install -y ...
кому: apt-get update
сопровождаемый apt-get install -y ...
, и меняя имена пакета, поскольку kraxor объясняет), которые необходимы путем перечисления всех команд, кроме которых Вы используете - yum
- и видя, отсутствует ли какой-либо из них или работа существенно другим способом на Ubuntu от пути, они работают над RHEL/Fedora.
Вы имеете (в порядке первого выступления):
set
: Это - встроенная оболочка и работает то же в большинстве оболочек стиля Границы; это не должно быть изменено.cd
: Это - встроенная оболочка и работает то же в в основном каждой оболочке Unix когда-либо.curl
: В то время как wget
является более наиболее часто используемым в системах Ubuntu и curl
не установлен по умолчанию, если это не установило Вас, может просто установить его с sudo apt-get update && sudo apt-get install curl
. Я не рекомендую добавить это к Вашему сценарию; просто выполните его сами перед использованием сценария впервые. Это немного нечетно, что Ваш сценарий использует обоих wget
и curl
- большинство сценаристов выбирает один - но нет ничего неправильно с использованием обоих, пока оба установлены.chmod
: Это - стандартная команда, которая работает почти точно то же над всеми подобными Unix системами.cpanm
: Это - команда загрузки сценария и установки перед использованием. Если это не имеет индивидуальные особенности, которые заставляют его работать по-другому над Ubuntu, это должно работать все равно. Посмотрите выше о возможности использования версии cpanm
официально, если в Ubuntu, вместо этого.tar
: Это - стандартная команда и в то время как некоторыми флагами является конкретный GNU/Linux, он работает по существу то же над всеми недавними системами GNU/Linux включая любую версию Ubuntu, RHEL или Fedora в прошлое десятилетие или около этого. Кроме того, используемые флаги (x
, z
, и f
) поддерживаются по существу каждым tar
реализация когда-либо.rm
: Как chmod
, это - стандартная команда, которая работает почти точно то же над всеми подобными Unix системами.ln
: Как chmod
и rm
, это - стандартная команда, которая работает почти точно то же над всеми подобными Unix системами. Основное различие должно быть то, что Ubuntu использует apt
вместо yum
, и некоторые пакеты имеют различные имена.
эквивалент yum install -y
был бы apt-get install -y
.
cairo
и cairo-devel
должен быть изменен на libcairo2
и libcairo2-dev
.
Обычно мы не устанавливаем make
, gcc
, и т.д. индивидуально, но используем build-essential
метапакет.
Кроме этого, другие команды выглядят независимыми от дистрибутива. Попытайтесь "перевести" yum
команды с помощью этих инструкций и тестового прогона их в системе Ubuntu. Если они работают успешно, то необходимо быть в порядке.