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

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

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

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

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? На самом деле это не делает. Можно угробить склонный - получают, загружают пакет [1 113] и используют dpkg --extract и извлекают пакет в любом каталоге, который Вы любите. Существует также --instdir, который должен работать на двоичный файл только пакет.

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

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

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

9
ответ дан 18.05.2020, 00:59

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

-1
ответ дан 18.05.2020, 00:59
  • 1
    Спасибо за ответ. I' m поиск , почему это только редактирует chmodded файлы. Мне кажется, что однопользовательскую функциональность было бы легко реализовать и очень полезный в некоторых областях (например, супервычислительные кластеры) – NoChance 18.05.2020, 00:59

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

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

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

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

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

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

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

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

Да и нет.

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

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

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

я не думаю, разработчики [1 110] и/или разработчики программных обеспечений интересовались бы выполнением этого, но некоторое программное обеспечение может быть разработано, который сделает источник, изменение, скомпилировать, создать, установить шаги автоматически, только прося каталог установки.

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

apt-dont-get install pkg1 pkg2 ...
1
ответ дан 18.05.2020, 00:59
  • 1
    @PattimusPrime Такие случаи главным образом редки, потому что в большинстве случаев администраторы устанавливают все необходимое программное обеспечение & другие don' t должен установить программное обеспечение. Также те, что здание из источника является очень легким & та реализация такой функциональности была бы бесполезна пока разработчики программного обеспечения don' t реализуют его, там владеют программным обеспечением, будет мешать apt-get разработчики делать так. Кроме того, много существующих программ зависят от других программ, и они ищут их в/usr каталоге. Реализация такой функциональности потребовала бы изменения во всех существующих программных обеспечениях, которые имеют зависимости (это не входит в тысячи). – Premraj 18.05.2020, 00:59
  • 2
    @Braiam: Я видел, что люди рекомендуют установить пакеты в $HOME/opt/ если они don' t имеют требуемые полномочия для установки пакетов в /opt/.. – NoChance 18.05.2020, 01:00
  • 3
    Спасибо за ответ - it' s полный и адреса мой вопрос. Я don' t понимают, почему не было бы никакого интереса к разработке однопользовательской функциональности в способный - добираются, как бы то ни было. Кажется, что функциональность была бы очень полезна в определенных вариантах использования. – The One 18.05.2020, 01:00
  • 4
    Хорошая информация, но Q& формат в Q&...?:) Idk, возможно, необходимо ли отредактировать в стандартный формат? Просто мысль. – Booji Boy 18.05.2020, 01:00
  • 5
    Нарушение политики Debian должно установить файлы в $HOME. Вы никогда не должны делать этого. В любом случае используйте /opt/package и chmod каталог вместо этого. – Hoang Le 18.05.2020, 01:01

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

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

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

3
ответ дан 18.05.2020, 01:00
  • 1
    Спасибо за ответ! Я знаю и использую обходные решения, но что I' m пытающийся выяснить почему I' ve, с помощью них. Я верю you' ре говоря, что проблема - то, что путь установки является hardcoded специалистами по обслуживанию пакета - почему can' t это быть измененным? – aa8y 18.05.2020, 01:00

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

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

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

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

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

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

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

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

2
ответ дан 18.05.2020, 01:00
  • 1
    Это didn' t должны быть тем путем. Это просто, оказывается, способ, которым был разработан Ubuntu (и Debian). Не было бы ничего останавливающего кого-то разрабатывающего операционную систему, где нормальный способ установить программное обеспечение был в расчете на пользователя. – Maheshwar Reddy 18.05.2020, 01:01
  • 2
    Спасибо за ответ и спасибо за тщательность. Я понимаю, что природа в масштабе всей системы способных - добирается, но что I' m пытающийся понять , почему это должен быть тот путь. – youcantryreachingme 18.05.2020, 01:01

Теги

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