C
C
Cat Anton2016-10-15 13:03:23
linux
Cat Anton, 2016-10-15 13:03:23

Correct approach to installing programs in Linux?

Good afternoon.
As a developer, I periodically have to set up a working environment: Git, Composer, PhpStorm, MySQL Workbench, Docker / Vagrant, and more. etc.
The sequence of actions for installing each program is quite long. For example, here are the instructions for installing Docker for Ubuntu: https ://docs.docker.com/engine/installation/linux/... even more rule.
Many people write scripts to automate these actions ( examples ). I went the same way. A new problem arises - such scripts have to be maintained by yourself, regularly synchronized with the official installation instructions.
I would be grateful if you could answer a few questions:
1. How do you install software on Linux? Only from sources or with the help of package managers?
2. Why don't developers of Linux programs bother writing and maintaining installation scripts, but limit themselves to installation instructions?
3. Maybe there is another more correct way to quickly install all the necessary programs on a new machine?

Answer the question

In order to leave comments, you need to log in

8 answer(s)
A
Antony, 2016-10-15
@27cm

1. Basically from the package manager. As a last resort, I compile the package myself, otherwise you'll have to clean up the system and resolve dependencies later.
2. So, what kind of script do you offer, for example, for docker? There is nothing to script there, and so only basic actions are required from the user.
3. The most correct way is through the system's package manager. Everything else is wrong.
If you really need programs that are not available in the form of packages for your distro - kick the developers of the program and the distro, or become a maintainer yourself.
ps
Не очень понимаю, чем вам не понравилась инструкция докера? Там подробно, для дебилов, расписано как добавить сторонний репозиторий (докера) и его ключ в систему, и как установить все это и настроить. Причем под разные версии системы. Отличная инструкция, без указания очевидных вещей занимает один абзац. (где указано какой репозиторий добавить и какие настройки сети нужно сделать для докера)

S
sergey, 2016-10-15
@zorro76

only "пакетный менеджер сиcтемы"

Назар Мокринский, 2016-10-15
@nazarpc

В хостовой системе ТОЛЬКО штатный пакетный менеджер, в Docker контейнерах внутри можно что угодно, если контейнеры шаблонные. Если же предполагается обновление внутри контейнера - только исключительно системный пакетный менеджер. В крайнем случае хоть как-то создать пакет самостоятельно, чтобы его можно было при необходимости чистенько удалить.

Игорь, 2016-10-16
@imikh

Мы делаем с помощью Ansible, но много других подобных тулзов есть - Salt, Chef, Puppet.

A
Adamos, 2016-10-16
@Adamos

Устанавливать что-то из исходников, конечно, имеет смысл, только если этого нет в пакетах.
Обычно это погоня за более свежей версией.
Но, гоняясь за более свежей версией при разработке, провоцируешь проблемы при развертывании / распространении результата (если у тебя не было пакетов, их может не быть и на боевом сервере / у пользователей).
Смысл затеи при этом несколько теряется...
Ну, а если нужны свежайшие версии каких-то инструментов, то логичнее сидеть на тестовой версии системы, где такие пакеты появляются сразу после кое-какого тестирования. А не превращать стабильную систему в захламленную экспериментами.

S
stAndrew, 2016-10-18
@stAndrew

Сначала ищу нужное ПО в менеджере программ моего дистрибутива. Там многое есть, в том числе docker.io.
Если там нет, ставлю то, что предлагает разработчик. Это может быть подключение стороннего репозитория, отдельный deb-пакет или установочный файл.
Если не получается, гуглю по форумам.

Михаил, 2016-10-20
@Singaporian

Всему свой уровень. Если ваше приложение требует очень качественного и сложного апгрейда, даунгрейда, удаления и хэндлинга непредвиденных ситуаций - тут без вариантов пакеты .rpm, .deb и так далее.
Но в данном случае речь идет о рабочем окружении для себя, где OS-specific пакеты будут оверинженирингом. В домашних условиях самое удобное будет так:
Vagrant разворачивает новую машину
Vagrant запускает Ansible
Ansible все настраивает. Что он делает - сами по месту поймете. Он может и Docker развернуть и Git-репо стянуть и как угодно вообще приложение установить.

Валентин, 2016-10-22
@ProFfeSsoRr

1. Только пакетным менеджером. Из исходников если что-то надо - собираете из исходников пакет и его ставите
2. Вообще-то утруждают, make файл или его аналоги что по-вашему? А дальше уже у каждого пакетного менеджера своё, так что меинтейнер пакета разберется что к чему.
3. Если надо что-то из раза в раз ставить одинаковое - автоматизируйте. Если это своя собственная машина - скрипт на bash. Если машин много - Ansible например, как самый простой для новичка среди аналогичного софта его советую вам рассмотреть.
Если устанавливать всё по фэн-шую (собирать из исходников с проверкой контрольных сумм) - это не по фен-шую, по фен-шую - это установить пакет. Если пакета еще никто под ваши дистрибутив не сделал - сделайте его сами, став таким образом меинтейнером пакета и внеся свой вклад в развитие вашего любимого дистрибутива.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question