Я совершенно новичок в Ubuntu / Linux, сейчас использую Ubuntu Server. Просто пытаюсь понять что-то основное.
Как вы можете сказать, где вы устанавливаете программу. Например, я только что установил поисковую систему Sphinx, поместив архив, загруженный с их сайта, в мой каталог:
/home/sphinx
. Я создал каталог sphinx для размещения этого архива. Затем я выполнил следующие команды:
tar xvzf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql
и затем эти:
make
sudo make install
Теперь у меня есть много файлов, находящихся в каталоге где я запускал эти команды. Это моя установка Spynx или она была установлена где-то еще?
В Windows, если вы запускаете установщик (файл .exe) в любом месте, программа все равно будет установлена в каталог C: \ Program Files. Применимо ли что-то подобное к Linux, где все программы установлены в одном месте, или вы можете устанавливать программы в любом месте системы.
Вопросы
Я бы предпочел хранить все мои установленные программы в одном месте, так что это подходящее место с точки зрения наилучшей практики. Другими словами, что является Linux-эквивалентом C: \ Program Files?
И как всегда устанавливать в этом месте, это просто вопрос размещения tarball и запуска установки команды из этого места?
А что если я использую sudo apt-get для установки пакета. Как я могу указать на это местоположение, чтобы apt-get всегда устанавливал его там?
Делает что-то подобное, применяются к Linux, где все программы установлены в центральном месте
\Windows
= /bin
\Windows\System32
= /lib
и /sbin
\Program Files
= /usr/bin
и /usr/lib
Я предпочел бы сохранять все свои установленные программы в одном месте поэтому, что является правильным местом для этого с точки зрения лучшей практики. Другими словами, что Linux эквивалентен из C:\Program Files?
Это было бы каталогами под /usr
, конкретно /usr/bin
и /usr/lib
.
И как каждый всегда устанавливает в этом местоположении, это - просто вопрос размещения tarball и выполнения команд установки от этого местоположения?
Нет. Где Вы - когда Вы работаете, команды установки почти никогда не имеет значения.
Программы Вы устанавливаете через apt-get
(или aptitude
) будет почти всегда заканчиваться соответственно в /usr
. НО программы Вы компилируете из источника и make install
будет чаще заканчиваться в /usr/local/bin
, /usr/local/lib
, и т.д., и у Вас могут быть проблемы с этим, так как установленный пользователями путь в Debian/Ubuntu /usr
и нет /usr/local
.
При компиляции из источника добавьте этот переключатель для конфигурирования: ./configure --prefix=/usr
. Таким образом, когда Вы make install
файлы закончатся в правильном каталоге
Также изучите checkinstall
программа, которая отслеживает файлы пакет, скомпилированный от исходных установок, делает deb файл и допускает легкий, удаляют/переустанавливают.
Что относительно того, если я использую sudo Кв. - добираются для установки пакета. Как я могу указать на это местоположение для сообщения склонный - добираются, чтобы всегда установить там?
apt-get
/dpkg
заботьтесь об этом автоматически. Можно использовать dpkg -L name-of-package
видеть все файлы, установленные пакетом и где они были установлены.
Когда вы устанавливаете программы из репозитория с помощью обычной установки, он устанавливается в правильное место, создает файлы конфигурации в нужном месте (функционально аналогично реестру Windows) и автоматически создает пункты меню.
Когда вы загружаете файл (не предпочитаемый, но часто необходимый, когда приложение отсутствует в репозитории), то первое, что вы сделали, - запустили tar, что эквивалентно разархивированию в Windows. Это создает файлы, которые вы, скорее всего, видите.
Затем, когда вы запустите make install, это, как правило, поместит результаты в нужное место, может быть, создаст меню, но не удалит неупакованные файлы. Скорее всего, вы можете сделать это, но вы можете временно сохранить их на всякий случай.
Вот интересная статья о Структура каталогов Debian .
Обычно программы устанавливаются в паре каталогов в одном каталоге top , называемом префиксом . Какой каталог top использовать, зависит от того, кто устанавливает, для какой цели и кто будет управлять программным обеспечением.
Префикс /usr
используется программным обеспечением, упакованным вашим дистрибутивом. Вы не должны устанавливать никакое другое программное обеспечение там, потому что это будет сбивать с толку дистрибутив при установке и обновлении программного обеспечения, упакованного дистрибутивом. Поэтому , пожалуйста не устанавливайте там свое собственное скомпилированное программное обеспечение. Это не хорошая идея, если вы действительно не знаете, что делаете. И если вы не являетесь разработчиком Debian или Ubunut, вы обычно этого не делаете. Я бы так не поступил.
Для коммерческого программного обеспечения используется префикс /opt
. Они зарезервированы для того, чтобы меньше всего вмешиваться в дистрибутивы и локального системного администратора.
Для программного обеспечения, устанавливаемого системным администратором для всех пользователей, используется префикс /usr/local
. Там это далеко от как коммерческой, так и дистрибутивной установки и не будет мешать им. Таким образом, вы используете это как системный администратор (если у вас есть привилегии root, вы являетесь системным администратором).
Если вы обычный пользователь, устанавливающий программное обеспечение для себя, вы можете использовать свой домашний каталог в качестве префикса, используя опцию --prefix
для configure
с префиксом каталога «~/
» или $HOME/
. Я использовал это много, когда я был студентом. : -)
Обычно программное обеспечение делает правильные вещи, когда вы выполняете configure
с опцией --prefix
с правильным значением, а затем make; make install
.
Под любым из этих префиксов вы обычно находите эти каталоги в стандартной установке.
bin
- исполняемые программы, двоичные файлы. sbin
- системные двоичные файлы, которые обычно не должны выполняться обычными пользователями. man
- справочные страницы для программ, библиотек и конфигурационных файлов и т. Д. etc
- файлы конфигурации со значениями по умолчанию для программного обеспечения. lib
- программные библиотеки и файлы данных, которые зависят от архитектуры (например, ЦП) вашего компьютера. share
- файлы данных, которые не различаются на разных архитектурах и могут совместно использоваться разными компьютерами. var
- каталоги с данными, которые изменяются во время выполнения программы. Как запись файлов и т. Д. Большинство этих каталогов можно использовать с файловыми системами, защищенными от записи, для повышения безопасности. Единственный пользователь, которому нужно писать, это каталог var/
. Когда программное обеспечение обновляется, эти каталоги, очевидно (?) Должны иметь права на запись. Это можно сделать с помощью перемонтирования с правами записи во время установки, а затем перемонтирования с чтением только после установки. Но это продвинутый уровень, и я привожу его только в качестве примера расширенного управления пакетами.
Также есть несколько каталогов непосредственно под /
(корневой каталог), которых нет под любым другим префиксом, например /dev
, /tmp
, /proc
и /srv
(для каталогов данных сервера, но они обычно находятся в /var/lib
или /var/www
и подобных каталогах, поэтому вам нужно изменить конфигурацию, чтобы использовать этот каталог. Я рекомендую вам делать это, когда вы работаете с сервером. Используйте только /var/
для тестирования стандартная установка).
/usr
как Debian / Ubuntu использует /usr/local
. Узнайте свой дистрибутив. --prefix
полезны для программ, использующих configure
. Лучший способ узнать это, вероятно, прочитать файл README.txt
или что-то в этом роде, которое вы, вероятно, предоставили в архиве tar. Архив tar может быть извлечен в любом месте, например, в вашем домашнем каталоге. После завершения установки вы можете удалить извлеченный архив tar, если вам не хватает места. Но не делайте этого раньше, если вы не проверили правильность установки. apt-get
или aptitude
, всегда устанавливаются в надлежащем месте для распространения. Вы не можете изменить это место.