Почему apt-get требует sudo?

Это, вероятно, глупый вопрос, но недавно я понял, что понятия не имею , почему нет однопользовательской функциональности с помощью apt-get.

Ответы, которые я не ищу:

  • «Это потому, что apt пишет в каталоги системного уровня». Это поверхностный уровень, почему, но я ищу уровень глубже. Есть ли что-то принципиально блокирующее однопользовательскую среду (a la pip + virtualenv)?
  • «Вы можете просто построить из исходного кода». Это обходной путь, но не решает мой вопрос. Я не хочу исправлять кратковременную проблему, и у меня все равно есть root-доступ на всех моих машинах.
11
задан 28 March 2014 в 16:09

5 ответов

Почему делает склонный - добираются, требуют sudo?

Не всегда. Можно отлично использовать apt-get без sudo. Существуют экземпляры, где Вам не нужно sudo вообще, как использование apt-get download который загружает пакет на Ваш текущий каталог, apt-get source который загружает debian исходные файлы на Ваш текущий каталог, changelog который загружает и печатает журнал изменений данного пакета и любую команду, которая имеет --simulate/--dry-run/--no-act (в случае install Вам нужно также --no-download).

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

Теперь, почему apt-get потребности sudo? На самом деле это не делает. Можно угробить склонный - получают, загружают пакет wget и используйте dpkg --extract и извлеките пакет в любом каталоге, который Вы любите. Существует также --instdir который должен работать на двоичный файл только пакет.

Теперь, почему это не значение по умолчанию? Поскольку это - боль. Чтобы сделать, что Вы хотите, мы должны были бы повторно упаковать каждый пакет дважды, один для правильного пути и другого, чтобы сделать то, что Вы хотите. В сборке двоичные файлы обычно должны знать, где файлы и библиотеки, им нужно (в некоторых случаях, это - hardcoded при компиляции).

Теперь, что можно сделать вместо этого? Просто chroot некоторая среда а-ля virtualenv, где можно установить пакеты без корня.

Сводка, это не путь, которые склонный - добираются, был предназначен, чтобы использоваться, и я не знаю, что другой диспетчер пакетов, подобный Кв. - добирается, который позволяет Вам делать это. В конце дня, apt-get просто фронтенд к dpkg, который мог сделать часть этого.

9
ответ дан 28 March 2014 в 16:09

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

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

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

0
ответ дан 28 March 2014 в 16:09

Почему склонный - получают установки на / (или подобный) каталоги по умолчанию?

Простая причина этого - это apt-get не решает, где установить программное обеспечение. Это решено разработчиками и кодировано в самом приложении.

Я могу установить на других каталогах?

Да, можно установить на других каталогах. Для программного обеспечения с открытым исходным кодом получите источник, измените каталог установки, скомпилируйте, создайте и установите его. Обычно существует опция к включенному configure сценарий, который позволяет Вам указать, где установить. Это обычно --prefix.

Но я настаиваю на том, чтобы использовать склонный - добираются.Что дальше?

Хорошо. Существует все еще способ сделать, это с Кв. - добирается, хотя это было бы слишком много для конечного пользователя. Выполните шаги.

  1. Получите источник.
  2. Измените каталог установки на что-то как $HOME.
  3. Скомпилируйте и создайте.
  4. упакуйте его в .deb файл.
  5. Создайте учетную запись панели запуска.
  6. Подпишите нормы поведения человечности (я не уверен, необходим ли этот).
  7. создайте ppa для себя.
  8. Загрузите deb пакет на ppa.
  9. добавьте ppa к своим источникам.
  10. Выполненный sudo apt-get update.
  11. Выполненный apt-get install package.

Это было слишком легко/твердо. Действительно ли возможно выбрать каталог во время установки?

Да и нет.

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

Нет, потому что этот метод не использует apt-get.

Я мог сделать это легко однажды, с apt-get?

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

Мой 6-й смысл говорит мне, что команда была бы

apt-dont-get install pkg1 pkg2 ...
1
ответ дан 28 March 2014 в 16:09

Вызовите его, редактируя файлы, которые являются chmodded, таким образом, Вы наклоняетесь, используют их. Вы могли бы быть в состоянии к chmod их так, Вы наклоняетесь, я не делаю reccomend выполнение этого хотя

0
ответ дан 28 March 2014 в 16:09

Это не глупый вопрос.

Уровни полномочий в операционной системе

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

для выполнения любой модификации к операционной системе, которая могла оказать влияние на систему в целом, а не просто файлы пользователя, более высокий уровень полномочий требуется, который в Linux упоминается как полномочия "суперпользователя" (или обычно назван "корнем"). Этот уровень полномочий имеет беспрепятственный доступ ко всей операционной системе, позволяющей его изменить - или уничтожить - все файлы для всех пользователей.

роль способных - добирается

при установке программного обеспечения через способный - добираются, Вы устанавливаете программное обеспечение, которое будет доступно в масштабе всей системы . Таким образом, программное обеспечение будет только помещено в корневой каталог пользователя для выполнения тем пользователем только, но это будет установлено в каталоге приложения в масштабе всей системы (такой как в/usr, / и т.д., / var и так далее) для выполнения всеми пользователями. Для изменения этих каталогов, Вам нужны полномочия суперпользователя. Никакой непривилегированный пользователь не может изменить эти каталоги, потому что в других отношениях непривилегированное программное обеспечение могло смешать с системой.

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

Используя Linux это возможно для установки программного обеспечения без полномочий суперпользователя, но необходимо записать его сами (например, сценарии оболочки) или скомпилировать его сами и выполнить скомпилированные исполняемые файлы непосредственно. Легче только установить его, в масштабе всей системы использование склонного - добирается (и другие основанные на APT утилиты как способность, синаптическая, или центр программного обеспечения Ubuntu), если у Вас есть доступ, чтобы сделать так.

0
ответ дан 28 March 2014 в 16:09

Другие вопросы по тегам:

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