Игнорирование зависимостей при установке с конфеткой (Научный Linux)

grep -version не работает, но grep --version дает

grep (GNU grep) 2.9

и оператор авторского права.


grep 'li' *.html

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


Я первоначально попробовал команду -R (или -r) но это не работало также. Команда рекурсивно вызывает, но поднимает файлы без html на имя (или где угодно на путь). Таким образом, это не это также.


Я отправил бы их как комментарии или редактирование в оригинал, но по некоторым причинам StackExchange правильно не связывает мою учетную запись. (Модификации: прокомментируйте-ify это!)

2
15.02.2013, 19:19
2 ответа

Вы не можете. Установка этих X материалов, вероятно, бессмысленна, если у Вас нет крошечной суммы устройства хранения данных и каждого МБ количества, или если это включает весь DE, (который это, вероятно, не делает), так как это может включать некоторую конфигурацию системы, которую Вы не хотите.

Если Вы все еще не хотите идти тем путем, необходимо смочь найти соответствующий .rpm (Вы смогли использовать конфетку, чтобы получить ту от repo без установки, видеть здесь; я не попробовал это и не знаю, будут ли зависимости стычкой; самая легкая вещь могла бы быть, чтобы просто использовать rpmfind). Можно затем распаковать использование об/мин rpm2cpio и установите lsb_release двоичный файл сами; проверьте его сначала с ldd lsb_release для проверки библиотеки, в которых это нуждается, доступны. Могут также быть другие маленькие кусочки в об/мин, в котором Вы нуждаетесь.

Уже существуют объяснения rpm2cpio онлайн, таким образом, я не повторю все это. Если Вы используете mc filebrowser можно использовать это вместо rpm2cpio - он позволит Вам просмотреть внутреннюю часть об/мин тем же путем, Вы могли бы tarball или zip-файл.

1
27.01.2020, 22:07
  • 1
    Спасибо, которое запустило меня в корректное направление. Я запишу свой собственный ответ на мой вопрос, но все еще приму Ваш так или иначе, хотя он не пошел полностью для решения моей проблемы. +1 на данный момент. –  0xC0000022L 15.02.2013, 20:35

На основе подсказок из ответа лютика золотистого я придумал этот небольшой сценарий, который делает точно, что я хочу и не больше. Это было записано на и протестировано на Научном Linux 6.3, но могло бы работать над другими производными RHEL. Я назвал сценарий redhat-lsb.sh (как нетворческий).

#!/usr/bin/env bash
WKPKG=redhat-lsb
WKDIR=$HOME/$WKPKG
[[ -d "$WKDIR" ]] && [[ "x$1" != "x-f" ]] && { echo "ERROR: not removing $WKDIR. Use -f to force it."; exit 1; }
(
    [[ -d "$WKDIR" ]] &&  rm -rf "$WKDIR"
    mkdir "$WKDIR" && \
        cd "$WKDIR" && \
        yumdownloader $WKPKG && \
        cd / && \
        rpm2cpio "$WKDIR"/redhat-lsb-*.$(uname -m).rpm | cpio -idmv
) && rm -rf "$WKDIR"

Звоните как sudo ./redhat-lsb.sh или sudo ./redhat-lsb.sh -f (последний удаляет рабочий каталог, если он уже существует).

То, что это делает:

  1. использует папку $HOME/redhat-lsb работать в.
  2. использование yumdownloader загружать пакет.
  3. использование окружает globbing для выбора корректного .rpm: redhat-lsb-*.$(uname -m).rpm
  4. изменения в / потому что это - то, где мы хотим установить его
  5. использование rpm2cpio распаковать его к stdout
  6. cpio выгоды это и распаковывает его в текущий каталог (это - шаг, который требует sudo)
  7. наконец удаляет рабочую папку

И после этого, большой успех... это работает... без всех зависимостей:

$ lsb_release -a
LSB Version:    :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: Scientific
Description:    Scientific Linux release 6.3 (Carbon)
Release:        6.3
Codename:       Carbon

Оказывается, что сам пакет только содержит единственный статически связанный исполняемый файл. Остальные - сценарии оболочки и данные.

2
27.01.2020, 22:07

Теги

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