Установите программное обеспечение на User1 и используйте его на User2.

Вопрос или проблема

Я новичок здесь. Я управляю рабочей станцией Ubuntu, используемой несколькими людьми. У каждого пользователя есть собственная учетная запись, и они сделали все необходимое, чтобы использовать машину (установили библиотеки, инструменты и так далее). Теперь мне нужно установить очень сложный инструмент (большую коллекцию программ на C и Fortran), множество зависимостей и библиотек, которые не должны изменяться в будущем, чтобы избежать проблем.

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

Как требуется от @Bodo:
Сначала мне нужно установить следующие зависимости с помощью менеджера пакетов: sudo apt-get install openmpi-bin libmpich-dev libopenmpi-dev gcc g++ gfortran subversion libcurl4-openssl-dev wget make m4 git liburi-perl libxml2-dev.
Затем я должен установить zlib и hdf5, NetCDF-c и NetCDF-Fortran (в этом порядке). Это предварительные условия, и я хочу, чтобы они были недоступны для других процессов, так как установка NetCDF-c и NetCDF-Fortran должна выполняться в определенном порядке, компилятор должен оставаться тем же, а опции должны быть одинаковыми для обеих компиляций. Таким образом, я предпочитаю скачать их куда-то в домашний каталог, скомпилировать их там и оставить их там, а не устанавливать в папку /lib, к которой также может получить доступ установка python после этого.

Наконец, мне нужно установить XIOS-trunk и XIOS-2.5, а также две океанические модели NEMO и CROCO, которые будут напрямую зависеть от Xios, Hdf5 и версий netcdf-C и Fortran в своем makefile. Ни один из этих 4 кодов не поставляется с менеджером пакетов и не имеет графического интерфейса установки. Это папки исходных файлов, которые нужно скомпилировать. Эти 4 программы я хочу иметь возможность запускать и к ним получать доступ от других пользователей, а не первый список зависимостей.

@terdon У меня есть доступ root

Для всего, что доступно в виде пакета в ваших репозиториях, просто установите с помощью

sudo apt install package1 package2 ... packageN

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

Если вам также нужно установить специфичные двоичные файлы, детали зависят от того, как они распространяются. Если они поставляются в виде предкомпилированных двоичных файлов и просто нуждаются в копировании куда-то, тогда скопируйте их в /usr/local/bin. Вы можете использовать любую директорию, которая находится в переменной PATH вашего пользователя, но /usr/local/bin – это нормальное расположение для таких двоичных файлов. См. Иерархию файловой системы Linux:

Иерархия /usr/local предназначена для использования системным администратором при установке программного обеспечения локально. Она должна быть защищенной от перезаписи при обновлении системного программного обеспечения. Она может использоваться для программ и данных, которые могут быть общими среди группы хостов, но не найдены в /usr.

Локально установленное программное обеспечение должно располагаться в /usr/local, а не в /usr, если только оно не устанавливается для замены или обновления программного обеспечения в /usr.

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

  1. Извлеките файлы из исходного архива. Что-то вроде tar xvzf someDomeCode.tar.gz

  2. Перейдите в директорию, созданную вышеупомянутой командой, где будут находиться файлы, и выполните ./configure.

  3. Запустите make для компиляции.

  4. Запустите sudo make install для установки различных компонентов в нужное место (скрипт configure выше должен был определить, какое место является правильным).

Теперь, снова, инструменты должны быть доступны всем пользователям.


Я предполагаю, что для zlib и hdf5 вы хотите установить их так, чтобы другие инструменты могли быть скомпилированы с их использованием, поэтому вам нужны версии пакетов -dev:

sudo apt install zlib1g-dev libhdf5-dev

Ответ или решение

Установка программного обеспечения для общего доступа на Ubuntu

Управление рабочей станцией с несколькими пользователями в Ubuntu может быть сложной задачей, особенно когда требуется установить специализированные инструменты и библиотеки, которые должны оставаться неизменными и доступны для всех пользователей. В данной статье мы рассмотрим, как установить сложный набор программ и библиотек, чтобы переместить программное обеспечение из учетной записи одного пользователя в доступное пространство для других пользователей.

Шаг 1: Установка зависимостей через пакетный менеджер

Первое, что необходимо сделать, это установить все зависимости, используя команду sudo apt-get. Поскольку у вас есть root-доступ, вы можете без проблем установить необходимые библиотеки:

sudo apt-get install openmpi-bin libmpich-dev libopenmpi-dev gcc g++ gfortran subversion libcurl4-openssl-dev wget make m4 git liburi-perl libxml2-dev

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

Шаг 2: Установка библиотек zlib и hdf5

Далее, нам требуется установить библиотеки zlib и hdf5. Мы будем использовать версии с суффиксом -dev, так как они содержат заголовочные файлы, необходимые для компиляции других программ:

sudo apt-get install zlib1g-dev libhdf5-dev

Эти библиотеки будут находиться в стандартных репозиториях и смогут использоваться другими пользователями без каких-либо проблем.

Шаг 3: Установка NetCDF

Теперь настало время установить NetCDF-c и NetCDF-Fortran в правильном порядке. Я рекомендую вам загрузить исходный код и установить эти библиотеки в специальное место, чтобы они оставались неизменными и доступны для других пользователей. Например, создайте директорию в /opt для установки:

sudo mkdir /opt/netcdf
sudo chown -R $USER:$USER /opt/netcdf

Скачать и установить NetCDF-c:

  1. Загрузите исходный код с официального сайта NetCDF.
  2. Распакуйте архив:
    tar xvzf netcdf-c-<версия>.tar.gz
  3. Перейдите в директорию:
    cd netcdf-c-<версия>
  4. Выполните конфигурацию:
    ./configure --prefix=/opt/netcdf
  5. Соберите и установите:
    make
    sudo make install

Теперь выполните аналогичные шаги для установки NetCDF-Fortran, убедившись, что вы указываете ту же папку /opt/netcdf как префикс.

Шаг 4: Установка XIOS и океанских моделей

Создайте аналогичную структуру для установок XIOS-trunk, XIOS-2.5, NEMO, и CROCO в директории /opt, следуя той же процедуре:

  1. Скачайте исходный код и распакуйте архивы.
  2. Перейдите в каждую директорию и выполните необходимые команды ./configure, make, sudo make install, указав --prefix=/opt/xios и --prefix=/opt/nemo соответственно.

Шаг 5: Настройка окружения

Чтобы обеспечить доступность скомпилированных программ для всех пользователей:

  1. Добавьте директории установки в системные переменные окружения:

    echo "export PATH=/opt/netcdf/bin:$PATH" | sudo tee -a /etc/profile
    echo "export LD_LIBRARY_PATH=/opt/netcdf/lib:$LD_LIBRARY_PATH" | sudo tee -a /etc/profile
  2. Включите изменения:

    source /etc/profile

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...