Перевод с Red-Hat на Ubuntu

Я начинаю в 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/
2
задан 6 August 2014 в 01:07

2 ответа

Вы спрашиваете, существуют ли части кода кроме 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 системами.
2
ответ дан 6 August 2014 в 01:07

Основное различие должно быть то, что Ubuntu использует apt вместо yum, и некоторые пакеты имеют различные имена.

эквивалент yum install -y был бы apt-get install -y.

cairo и cairo-devel должен быть изменен на libcairo2 и libcairo2-dev.

Обычно мы не устанавливаем make, gcc, и т.д. индивидуально, но используем build-essential метапакет.

Кроме этого, другие команды выглядят независимыми от дистрибутива. Попытайтесь "перевести" yum команды с помощью этих инструкций и тестового прогона их в системе Ubuntu. Если они работают успешно, то необходимо быть в порядке.

2
ответ дан 6 August 2014 в 01:07

Другие вопросы по тегам:

Похожие вопросы: