Как установить точно те же пакеты на другом компьютере в openSUSE?

Стандартная арифметика оболочки только позволяет целочисленные арифметические операции. Это не включает ** для возведения в степень, которое удар имеет как расширение.

Целочисленное возведение в степень достаточно легко реализовать как функция оболочки (хотя Вы скоро столкнетесь с циклическим возвратом).

pow () {
    set $1 $2 1
    while [ $2 -gt 0 ]; do
      set $1 $(($2-1)) $(($1*$3))
    done
    echo $3
}

Как в стороне, почему использование expr здесь? Арифметика Shell может сделать дополнение.

8
16.08.2014, 03:06
3 ответа

Кажется, что необходимо создать собственный репозиторий.

Поместите свой RPMs в Вашу требуемую версию в тот репозиторий. Затем активируйте эти репозитории на обеих машинах (как источник установки) и установите пакеты.

3
27.01.2020, 20:12
  • 1
    Спасибо, я (еще) не отмечаю это как решение, потому что, возможно, кто-то придумает другой подход - как, войти в список (об/мин - обеспечение качества) и установить те самые пакеты в данной версии на другой машине. Однако Ваш подход масштабируется лучше (единственная загрузка на пакет). –  greenoldman 03.12.2011, 23:06

Наблюдение как OpenSuse использует RPMs, можно использовать rpm утилита.

rpm -qa перечислит все в настоящее время устанавливаемые пакеты в Вашей системе (очень длинный список). Список включает имя пакета, номер версии и архитектуру. Вы могли написать список в файл и дать застежке-молнии файл в новой системе.

Возможности будет несколько пакетов, которые уже установлены по умолчанию, но застежка-молния перескочит через них и установит тех, Вам нужно.

2
27.01.2020, 20:12
  • 1
    Ну, Вы просто скопировали мой комментарий, таким образом, мы соглашаемся в большом изображении, но дьявол находится в деталях - как Вы вынуждаете застежку-молнию не установить пакет P, но P-1.23, т.е. с данной версией? Поскольку это крайне важно здесь (по умолчанию, вывод об/мин не совместим с форматом ввода застежки-молнии). –  greenoldman 04.12.2011, 09:52
  • 2
    Для записи я отправил это, прежде чем Вы добавили свой комментарий, или Вы отправили его, в то время как я писал свой ответ. Что касается застежки-молнии, да можно использовать вывод rpm -qa как вход для zypper. Это понимает формат превосходного пакета. Я не протестировал, чтобы видеть, повинуется ли это номеру версии, но это высоко зависит от того, содержат ли репозитории более ранние версии. Если repos не делают, то нет очень, можно делать с этим. –  n0pe 04.12.2011, 09:59
  • 3
    Вы противоречите себе, "Я не протестировал, чтобы видеть, повинуется ли это номеру версии", но "Это понимает формат превосходного пакета". Таким образом, я разъясняюсь - это не поддерживает вывод об/мин. Для определения версии, необходимо добавить квантор, и это - хитрая часть, потому что именование пакета является просто конвенцией, это не вызывается никаким блоком проверки допустимости. См.: en.opensuse.org/SDB:Zypper_usage_11.3#Selecting_packages –  greenoldman 04.12.2011, 11:39

Сначала перечислите все установленные пакеты и их версии на машине, "клон" которой вы пытаетесь создать: rpm -qa > /tmp/rpm.list.txt.

Затем скопируйте /tmp/rpm.list.txt в систему, которую вы пытаетесь превратить в "клон" другой системы, запустите zypper и передайте ему список пакетов, который вы только что создали: zypper install $(cat /tmp/rpm.list.txt) (или куда бы вы ни поместили файл со списком пакетов из исходной системы).

1
27.01.2020, 20:12

Теги

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