Как установить программу в centos без интернета

Обновлено: 03.07.2024

В настоящее время при работе с операционными системами подразумевается, что она всегда подключена к Интернету. Поэтому диски с драйверами сетевых карт больше не входят в комплект при продаже. И может возникнуть ситуация, что невозможно установить драйвер устройства, поскольку нет сетевого соединения, а сетевого соединения нет, потому что невозможно установить драйвер устройства. Рассмотрим несколько способов, как вырваться из этого замкнутого круга.

4. Установка пакетов с Live или установочного диска

В репозиториях в качестве источника пакетов нужно прописать CD диск.

Для этого выполните команду:

Если, например, вы добавляете образ Wheezy, будет сгенерирован следующий результат:

1. Использование проводного соединения

Если вы не можете настроить Wi-Fi подключение, то соедините компьютер с роутером проводом. Обычно Ethernet кабели уже входят в комплект роутеров. Есть высокий шанс, что ваш Linux поддерживает чипсет Ethernet гнезда и он работает без дополнительных пакетов. Обычно проводные соединения не требуют особой настройки.

2.Подключить USB адаптер для которого драйвера присутствуют в ядре Linux

Подойдёт практически любой USB адаптер кроме самых экзотических — в ядре Linux есть драйвера практически для всего. То есть вы получите Интернет и сможете сделать обычную установку.

1 ответ 1

Предположим, что ISO уже записан на DVD, или ISO присутствует в виде файла в вашей файловой системе. Сначала нам нужно его смонтировать. Предпочтительной точкой монтирования для его монтирования является /media/CentOS , поскольку yum по умолчанию настроен на поиск репозиториев из этого расположения при установке пакетов с DVD. Шаги ниже описывают, как смонтировать ISO (представленный в виде файла или записанный на DVD) и установить пакеты из ISO.

Проверьте, был ли DVD установлен автоматически. Для этого выполните следующую команду:

Если эта команда возвращает вывод, это означает, что DVD был смонтирован. Например, следующий пример вывода показывает, что DVD был автоматически подключен к /media/CentOS_6.4_Final .

Если компакт-диск был смонтирован автоматически, пропустите этот шаг. В противном случае установите его вручную.

Если ISO присутствует в файловой системе, подключите его к /media/CentOS используя команду mount с опцией -o loop .

Выполните: cat /etc/yum.repos.d/CentOS-Media.repo и прочитайте информацию, представленную в виде комментариев в этом файле. Смотрите имя репо в квадратных скобках. По умолчанию это c6-media . Также см. Места, указанные для свойства baseurl . Эти URL указывают по умолчанию на локальные каталоги /media/CentOS , /media/cdrom и /media/cdrecorder/ .

Если DVD-диск подключен к точке монтирования, указанной в свойстве baseurl , пропустите этот шаг. В противном случае создайте символическую ссылку в месте, указанном в свойстве baseurl с точкой монтирования в качестве цели. Пример следует.

3. Офлайн установка пакетов

На Linux с Интернетом вы можете скачать пакеты вручную:

А затем установить их на компьютере без Интернета:

В теории это всего две команды, но на практике возможны следующие проблемы:

Чтобы пакеты подошли, дистрибутив, на котором вы скачиваете должен быть таким же и такой же версии, где вы затем будете устанавливать пакеты. Иначе вам нужно искать ссылки для каждого пакета для вашего дистрибутива и скачивать вручную

У каждого из этих пакетов могут быть зависимости, а у тех зависимостей могут быть другие зависимости…

В общем, посмотреть зависимости можно командой:

Или вариант попроще, запустите команду (делать установку необязательно):

и посмотрите, какие пакеты будут предложены для установки. Скопируйте названия этих пакетов и загрузите с помощью «apt download».

YUM без Интернета? (Проблема с установкой пакета в CentOS)

YUM без Интернета?

Не удается установить компилятор СИ в CentOS_5.0_Final на компе без Интернета.
В openSUSE - Install Package with YaST - и все, компилирует.
А в CentOS указываю на пакет в родном дистрибутиве:

Как понимаю, yum install не может обратиться к зеркалу репозитория. Пытается отследить зависимости?
А можно без этого обойтись? Пакет идет в составе дистрибутива . Там все и так должно быть .
Как отучить от обращения к зеркалу? Или как создать фиктивное локальное зеркало?
Или обязательно качать и создавать настоящее локальное зеркало?

Доброго времени суток!

У YUM'а изначально сконфигурировано несколько репозитариев, где он ищет то, чего мы его просим установить.
Репозитарии сконфигурированы тут: /etc/yum.repos.d/ Например, в файле CentOS-Media.repo описан репозитарий с дистрибутивом, там внутри этого текстового файла указаны пути (URL'ы), где он будет искать файлы, т.е. например, file:///media/CentOS/ - обычно туда автоматом монтируется диск с дистрибутивом, когда он вставляется в привод.

Так вот, чтоб использовать только этот локальный репозитарий, нужно указать в параметрах:

Еще может поругаться на открытый GPG ключ, который используется для проверки подлинности пакетов.
Его можно предварительно заимпортировать командой

как вариант может помочь прописать тоже самое в файле /etc/yum.repos.d/CentOS-Media.repo, там по ошибке указан тестовый ключ, т.е. надо всего лишь заменить RPM-GPG-KEY-beta на RPM-GPG-KEY-CentOS-5 в строчке с параметром gpgkey..

Доброго времени суток!
.
чтоб использовать только этот локальный репозитарий, нужно указать в параметрах:

Еще может поругаться на открытый GPG ключ, который используется для проверки подлинности пакетов.
.
как вариант может помочь прописать тоже самое в файле /etc/yum.repos.d/CentOS-Media.repo, там по ошибке указан тестовый ключ, т.е. надо всего лишь заменить RPM-GPG-KEY-beta на RPM-GPG-KEY-CentOS-5 в строчке с параметром gpgkey..

А то не находил repomd.xml на образе СД.

Теперь такой еще вопрос:
Как выгрузить GNOME?
Или как его не запускать при загрузке?

По какой-то причине репозитории большинства дистрибутивов и базы пакетов в них устроены таким образом, чтобы усложнить обновление системы изолированной от сети. В большинстве случаев база представляет собой набор файлов, не все из которых ещё и нужны для получения информации об обновлениях, и часто для оффлайн обновления предлагают создать локальный репозиторий/зеркало и обновляться из него, предварительно скачав десяток-другой гигабайтов никому не нужных пакетов. Это, например, меня не устраивает, особенно после использования Gentoo, где процедура оффлайн обновления очень простая.

Порывшись в <любимый_поисковик> я так и не нашёл устраивающих меня руководств по оффлайн-обновлению CentOS (плохо искал? возможно, что где-то это уже есть). Неужели ни для кого не актуально? В итоге опытным путём, посредством ковыряния live образа CentOS 7, выяснил, что для обновления локальной базы достаточно скачать всего несколько файлов, создать ещё пару: cachecookie, mirrorlist.txt - без них Yum будет ругаться, что база повреждена. Итак, предположим, что имеем свежеустановленную систему со стандартным набором ftp репозиториев base, extras, updates. При желании можно расширить bash-скрипт на epel или другие репозитории.

Затем получаем список ссылок на скачивание пакетов:

Но так скачаются все пакеты в один каталог, а нужно распихивать их потом в /var/cache/yum/. /<имя репозитория>/packages поэтому лучше создать отдельные файлы со ссылками для каждого репозитория. Получить список пакетов для обновления из каждого репозитория в отдельности можно командой, например для extras

или только названия пакетов

или получить список ссылок:

Получить список ссылок для скачивания отдельного пакета с его зависимостями можно командой

Можно ли использовать RPM или YUM или любой другой менеджер пакетов в Linux, в частности CentOS, для установки пакета, который уже загружен или из репо, в пользовательское местоположение без доступа администратора /root?

Я попытался построить из источников, используя cmake, configure, make, make install и т.д., Но в итоге у него было так много зависимостей один за другим.

Или есть какие-то лучшие альтернативы?

спросил(а) 2016-04-15T18:23:00+03:00 5 лет, 6 месяцев назад

Да. Если программное обеспечение упаковано в репозитории. И администратор установил пакет PackageKit-command-not-found.

ответил(а) 2016-04-18T15:19:00+03:00 5 лет, 5 месяцев назад

Можно использовать yum и rpm для установки любого пакета в хранилище дистрибутива. Вот рецепт:

Найти название пакета

Используйте yum search .

Загрузите пакет и все его зависимости, используя yumdownloader (который доступен в CentOS по умолчанию). Вам нужно будет передать его --resolve чтобы получить разрешение зависимостей. yumdownloader загружает в текущий каталог, если вы не указали --destdir .

Выберите местоположение префикса

/y . Если ваш дом работает медленно, потому что он находится в сетевой файловой системе, вы можете поместить его в /var/tmp/.

Извлеките все пакеты .rpm

Извлеките все пакеты .rpm в выбранный вами префикс.

    rpm2cpio выводит файл .rpm в виде архива .cpio на стандартный вывод. cpio читает это из стандартного ввода -i означает извлечение (в текущий каталог) -d означает создание отсутствующего каталога

При желании вы можете использовать -v : подробный

Настроить среду

Вам нужно будет настроить переменные среды PATH и LD_LIBRARY_PATH чтобы установленные пакеты работали правильно. Вот соответствующий пример из моего

Примечание. Когда вы заходите на сервер по ssh, вы получаете оболочку входа. Таким образом, ваш .bashrc не поставляется по умолчанию. Bash вместо этого запускает ваш загрузочный файл. Этот файл является первым существующим файлом в списке: .bash_profile , .bash_login и .profile (см. Документацию bash о файлах запуска). Если по какой-то непонятной причине вы хотите сконфигурировать свою среду в вашем .bashrc а не в своем логине или файле запуска, вам придется исходить из первого.

Теперь, если вы хотите установить много пакетов таким образом, вы можете автоматизировать процесс. Если это так, взгляните на этот репозиторий.

TL; DR Используйте Miniconda, Conda-Forge это удивительно.

Я долго пытался заставить менеджер пакетов хорошо работать на CentOS, но безуспешно. Лучшее, что я мог сделать, - это установить префикс Gentoo в правильном месте на другой CentOS с доступом с правами root, а затем .tar.xz всей установки на целевой сервер (единственный способ получить правильный gcc для префикса Gentoo). Я мог бы emerge (сборка и установка) пакеты на целевом сервере, но все стукали проблемы с местными жителями и разрешениями.

Недавно я добился установки пользователем некоторых интересных пакетов с помощью conda. Вот как установить его из командной строки:

Если, как и я, ваша домашняя папка размещена на удаленном диске (сетевая файловая система), вы можете не устанавливать ее в свою домашнюю папку, поэтому вы можете использовать что-то вроде mkdir/var/tmp/lo затем указать папка установки, например /var/tmp/lo/da во время установки.

Вам также будет предложено добавить, скажем, /var/tmp/lo/da/bin в вашу переменную PATH в вашем .bashrc, но когда вы входите в ssh на сервер, вы получаете оболочку входа в систему, поэтому ваш .bashrc не получен по умолчанию. Поэтому вам нужно использовать ваш .bash_profile / .bash_login / .profile (см. Документацию bash о файлах запуска), чтобы добавить эту строку или получить исходный код .bashrc .

    gcc conda install gcc ZLIB conda install zlib сделать conda install make cmake conda install cmake Git conda install git рыба conda install -c conda-forge fish zsh conda install -c ActivisionGameScience zsh tmux conda install -c conda-forge tmux
      В этом tmux есть ошибка с именем используемой библиотеки ncurse. Вы можете обойти это, перейдя в папку da/lib и вставив символическую ссылку ln -sT libtinfow.so.6.1 libtinfo.so.6

    Другие менеджеры пакетов, которые я пытался использовать после conda:

    Linuxbrew

    Я подумал, что с этим было бы легко установить homebrew (linuxbrew), но их источники грязные и используют жесткий -c одедированный абсолютный путь к интерпретатору ruby, который терпит неудачу, потому что это не последняя версия и так далее, и так далее, и Я сдался.

    шухер

    Nix по-прежнему требует, чтобы вы использовали папку /nix. Они жестко -c также сделали это, и было трудно правильно отсеивать его при каждой загрузке, которую он должен выполнить во время установки (не говоря уже об обновлениях).

    Gentoo Prefix

    Pkgsrc

    Я собираюсь попробовать pkgsrc сейчас. - Используйте (более раннюю) версию 64-битного EL 6.x, если на CentOS 6 или если есть проблемы (G) LibC версии с 7.x. - Не повезло, жесткие коды pkgsrc /usr/pkg/sbin и /usr/pkg/bin . Так что его нельзя использовать как пользователь, если, возможно, не настроена среда fakechroot. Но я никогда этого не делал и ожидаю проблем с юзабилити.

    Пожалуйста, прокомментируйте/ответьте, если вам удалось установить какой-либо другой менеджер пакетов.

    У меня есть система CentOS 6.4 без подключения к интернету. У меня есть установщик DVD, хотя. Как я могу установить пакет, скажем, gcc, используя только этот DVD?

    Читайте также: