Как я устанавливаю некоторые необходимые библиотеки для программы без sudo?

Согласно моему ответу на этот вопрос-ответ под заголовком: [11478] Может ли VirtualBox работать под Xen Dom0? [11479] ответ здесь - нет, вы не можете запускать VM-технологии, подобные этой, поверх XEN или Proxmox/OpenVZ. Скорее всего, вы можете запускать OpenVZ внутри ВМ внутри VirtualBox.

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

KVM

Что мы делаем там, где я работаю, так это настраиваем несколько KVM экземпляров Linux (не важно какой дистрибутив) и вдобавок к этому запускаем много ВМ. Вы можете сделать то же самое. Это было бы идентично использованию Vagrant + VirtualBox, так что я не уверен, поможет ли это.

* 1 gigabyte is 1,000,000,000 bytes. 

Альтернатива?

Если вы действительно не хотите запускать это на физическом аппаратном обеспечении, то 2 технологии, которые могут позволить вам сделать это, это [11480]Docker[11481] и [11482]LXC[11483]. Они похожи на Proxmox и OpenVZ, но позволяют гораздо более детальный контроль. Вы все еще не будете запускать VirtualBox и внутри них, но, возможно, Вы сможете представить себе решение, в котором Вы могли бы использовать эти 2 технологии вместо них.

excerpt LXC

LXC - это интерфейс пользовательского пространства для функций локализации ядра Linux. Благодаря мощному API и простым инструментам, он позволяет пользователям Linux легко создавать и управлять контейнерами системы или приложений.

Features

Current LXC использует следующие возможности ядра, чтобы содержать процессы:

  1. Пространства имен ядра (ipc, uts, mount, pid, network и user)
  2. Профили Apparmor и SELinux
  3. Политики безопасности Chroots (используя pivot_root)
  4. Возможности ядра

Контрольные группы (cgroups)

Таким образом, LXC часто рассматривается как нечто среднее между chroot на стероидах и полнофункциональной виртуальной машиной. Целью LXC является создание среды, максимально приближенной к стандартной установке Linux, но без необходимости в отдельном ядре.

excerpt Docker

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

Контейнеры Docker могут инкапсулировать любую полезную нагрузку, и будут последовательно работать практически на любом сервере и между ним. Тот же самый контейнер, который разработчик строит и тестирует на ноутбуке, будет работать в масштабе, на производстве*, на виртуальных машинах, пустых серверах, кластерах OpenStack, публичных экземплярах или комбинациях вышеперечисленного.

Часто используемые примеры использования Docker включают:

Автоматизация упаковки и развертывания приложений

du -sm */ | sort -k1,1n | awk '$1 > 500 { sub(/$/, "M", $1); print $0 }'

Создание легковесных частных PAAS сред

Автоматизированное тестирование и непрерывная интеграция/развертывание

выписка

Vagabond - это инструмент, интегрированный с Chef для создания локальных узлов легко и, что самое главное, быстро. Он использует Linux-контейнеры вместо переполненных VM, что означает, что все происходит быстрее. Намного быстрее.


Vagabond собирается для Chef. Инструментарий внутри Vagabond ориентирован на Chef. После того, как первоначальная разработка замедлится, специфика Chef будет втянута в плагин.

Также согласно сайту, он утверждает, что имеет поддержку Kitchen 1.0.

Vagabond предоставляет тестовую поддержку kitchen 1.0. Он будет сопоставлять коробки, определенные внутри платформ, с доступными шаблонами платформ (в меру своих возможностей). Нет необходимости раскручивать бродячие ВМ или использовать другой инструмент. Направьте бродягу на кулинарную книгу, и пусть она обрабатывает детали.

enter image description here

2
20.02.2015, 14:06
2 ответа

Я делаю ставку на программу, которую вы пытаетесь запустить, требуется более новая версия GLIBC, чем тока, установленная в вашей системе. К сожалению, потому что это Glibc, нет способа получить более новую версию, не имея доступа к корню и не затрагивая всю систему. Проверьте вышеупомянутое место программы, убедитесь, что он поддерживается на RHEL 6.

-1
27.01.2020, 23:10

Итак, вам нужно знать две вещи:

  • Как получить библиотеку
  • Как пользоваться библиотекой

Получение библиотеки

Примечание. Я менее знаком с yum, чем с apt -get

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

Если он доступен...

Вы видели инструкции, указывающие на apt -get. Это Debian штука (, включая Ubuntu и Mint ). Yum — аналогичный инструмент для родственников Redhat (, включая Fedora и Centos ). Yum используется для установки «RPM», где apt -get устанавливает DPKG.

Начните с:

  1. Загрузите нужный RPM
  2. Извлечь RPM

Использование библиотеки

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

Тут загвоздка! Насколько мне известно, нет способа добавить к пути к библиотеке по умолчанию, можно только полностью заменить его. В отличие от PATH, LD_LIBRARY_PATHне устанавливается по умолчанию. Поэтому, чтобы установить его, вам понадобится каждый каталог библиотеки, который вам нужен:

export LD_LIBRARY_PATH=/home/me/my-libs:/lib:/usr/lib:... and the rest

Если вы не знаете, какие каталоги lib вам нужны, вы можете проанализировать свою программу с помощью ldd, прежде чем устанавливать переменную среды. Например:

ldd /bin/bash
    linux-vdso.so.1 (0x00007fff55394000)
    libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fb13c31f000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb13c319000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb13c12f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fb13c480000)

Показывает, что bash должен быть включен /lib:/lib64.

-1
27.01.2020, 23:10

Теги

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