Почему для сборки из двоичных файлов не требуется Root-доступ?

StackOverflow https://stackoverflow.com/questions/791126

  •  16-09-2019
  •  | 
  •  

Вопрос

Когда я нахожусь на сервере моего отдела, я не могу использовать такие команды, как "apt-get install nethack".Я должен создать nethack из двоичных файлов, чтобы заставить его работать, по крайней мере, так мне сказали.Я не могу понять причину.Зачем мне нужно создавать что-то из двоичных файлов?Почему использование команд, таких как "apt-get", запрещено?Почему мне не нужен Root-доступ для сборки из двоичных файлов?

Это было полезно?

Решение

Когда вы компилируете программу из исходного кода, вы можете присвоить ей '--prefix=~/'.Это приводит к его установке относительно вашего собственного домашнего каталога (поэтому двоичные программы обычно заканчиваются в '~/bin', справочные страницы - в '~/man' и т.д.).Это не создает никаких проблем, потому что у вас уже есть разрешение писать здесь.

Apt-get, с другой стороны, устанавливает пакеты в глобальную файловую систему ('/bin/', '/usr/bin/' и т.д.), Которые могут повлиять на других пользователей и поэтому, вполне справедливо, требуют административного доступа.

Если вы хотите установить какую-либо программу, вы можете использовать команду

apt-get source app-name

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

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

Другие советы

apt-get это команда системного уровня, которая устанавливает пакеты для всех пользователей.

Если вы загружаете и компилируете, вы создаете только локальные "копии" двоичных файлов, а не общесистемные.Если вы попытались завершить процесс установки с make install это, скорее всего, завершится неудачей, потому что у вас нет достаточных привилегий для установки программы для доступа всех пользователей (по той же причине, по которой вы не можете запустить apt-get install)

Потому что apt-get установит программу по всей системе.

Расположения, в которые apt-get записывает установленные файлы (/bin, /usr/bin, ...), ограничены доступом root.Я предполагаю, что при сборке из исходного кода вы не выполняете этап установки bulid.Вам нужно будет установить префикс для установки таким образом, чтобы пакеты в конечном итоге попадали туда, куда вы можете записать. Этот поток немного рассказывает о настройке префиксов для apt-get, и вы, вероятно, захотите установить свой префикс на что-то вроде

~/software/

а затем добавьте результирующие каталоги bin в свой PATH.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top