Это, наверное, глупый вопрос, но я недавно понял, что понятия не имею, почему нет однопользовательских функций с apt-get.
Ответы, которые я не ищу:
«Это потому, что apt пишет в системные каталоги». Это поверхностный уровень, но я ищу уровень глубже. Есть ли что-то принципиально блокирующее однопользовательскую среду (a la pip + virtualenv)? «Вы можете просто строить из источника». Это обходное решение, но не затрагивает мой вопрос. Я не хочу исправлять краткосрочную проблему, и у меня есть root-доступ на всех моих машинах.Информация в самом пакете определяет, где будут установлены файлы, поэтому вам нужно sudo записать как / и изменить базу данных пакета.
Когда вы устанавливаете пакеты, вы устанавливаете готовые двоичные файлы и связанные с ними конфигурационные и метафайлы и скрипты, которые являются неотъемлемыми частями пакета. Эти сценарии и файлы конфигурации тесно связаны с зависимостями и остальной частью системы. Вы не хотели бы изменять это легко, если не знаете точно, что вы делаете.
Если вы находитесь в системе, скажите на работе, где у вас нет доступа sudo, вы можете скомпилировать из источника и установить каталог установки в ваш дом. Тогда нет необходимости в sudo. Когда вы устанавливаете источник, вы обычно не меняете базу данных пакета.
Это не глупый вопрос.
Уровни привилегий в операционной системе
Ubuntu - и даже любая современная операционная система - имеет концепцию разных уровней привилегий для разных программ. Программное обеспечение, инициированное пользователями, обычно выполняется под пользовательским уровнем привилегий, который по соображениям безопасности не имеет необходимого доступа для изменения системы - он может изменять только файлы, принадлежащие этому пользователю.
Чтобы выполнить любая модификация операционной системы, которая может повлиять на систему в целом, а не только на файлы пользователя, требуется более высокий уровень привилегий, который в Linux называется привилегиями «суперпользователя» (или обычно называемыми «root») ). Этот уровень привилегий имеет неограниченный доступ ко всей операционной системе, позволяя ему изменять или уничтожать все файлы для всех пользователей.
Уровни привилегий в операционной системе
7] Когда вы устанавливаете программное обеспечение через apt-get, вы устанавливаете программное обеспечение, которое будет доступно для всей системы. То есть, программное обеспечение не просто будет помещено в домашний каталог пользователя только для работы этого пользователя, но будет установлено в общесистемном каталоге приложений (например, в / usr, / etc, / var и т. Д. ) для всех пользователей. Чтобы изменить эти каталоги, вам нужны привилегии суперпользователя.Если вы пытаетесь установить что-то с помощью apt-get, не предоставляя привилегии суперпользователя apt-get, первое препятствие, которое оно не удастся выполнить, не может быть изменено никаким непривилегированным пользователем. для преодоления необходимо получить блокировку для записи в свой собственный каталог программного обеспечения. Будучи общесистемной утилитой, apt-get поддерживает каталог установленного программного обеспечения, который, естественно, требует прав суперпользователя, чтобы редактировать, чтобы непривилегированное программное обеспечение не могло с ним поработать. Но даже если вы каким-то образом преодолеете это препятствие (например, изменив права доступа к файлам), многие дальнейшие шаги по пути установки программного обеспечения все равно потерпят неудачу, поскольку процедура установки будет зависеть от записи в несколько системных каталогов.
Использование Linux - это общесистемный для установки программного обеспечения без привилегий суперпользователя, но вам нужно написать его самостоятельно (например, скрипты оболочки) или скомпилировать его самостоятельно и напрямую запустить скомпилированные исполняемые файлы. Легче просто установить его в системном масштабе с помощью apt-get (и других утилит APT, таких как aptitude, synaptic или программный центр Ubuntu), если у вас есть доступ к этому.
Простая причина этого в том, что apt-get не определяет, где устанавливать программное обеспечение.
Да, вы можете установить их в другие каталоги. Для программного обеспечения с открытым исходным кодом источник, измените каталог установки, скопируйте, создайте и установите его. Как правило, есть опция для включенного скрипта configure, который позволяет указать, где устанавливать. Обычно это --prefix.
ОК. Есть еще способ сделать это с помощью apt-get, хотя это будет слишком много для конечного пользователя. Выполните шаги.
Получите исходный код. Измените каталог установки на что-то вроде $HOME. Скомпилируйте и постройте. упакуйте его в файл .deb. Создайте учетную запись для запуска. Подпишите код поведения ubuntu (я не уверен, что это необходимо). создайте ppa для себя. Загрузите пакет deb в ppa. добавьте ppa в свои источники. Запустите sudo apt-get update. Запустите apt-get install package.Да и нет.
Да, потому что это возможно, некоторые программные средства используют этот метод, единственный, который я знаю, это Qt5. У него есть файл .run, который при запуске запрашивает каталог установки среди многих других входов.
Нет, потому что этот метод не использует apt-get .
Я не думаю, что разработчики apt-get и / или разработчики программного обеспечения были бы заинтересованы в этом , но может быть разработано какое-то программное обеспечение, которое автоматически выполнит установку, изменение, компиляцию, сборку и установку шагов, только запрашивая каталог установки.
Мой шестой смысл подсказывает мне, что команда будет
apt-dont-get install pkg1 pkg2 ...
Потому что он редактирует файлы, которые chmodded, поэтому вы не можете их использовать. Возможно, вы сможете chmod их, поэтому вы не можете мне это делать, хотя