Меня давно интересует вопрос установки программ в Linux (Ubuntu). Поскольку я привык к Windows OS, все программы устанавливаются с помощью своего рода "мастера", обычно мне не нужно ничего настраивать, просто нажать "next" и все, но в мире Linux, есть много программ, которые должны быть собраны путем запуска некоторых commend, как правило, куча .c файлов. Даже я знаю структуру файловой системы Linux, но я все еще не до конца понимаю, куда должен попасть каждый файл после сборки, например, некоторые программы имеют исполняемые файлы и файл конфигурации, эти два файла должны быть расположены раздельно. И иногда, чтобы сделать исполняемый файл доступным для поиска, я не могу просто поместить все в свою пользовательскую папку. Я чувствую, что должна существовать конвенция для установки программного обеспечения в Linux box (особенно для тех, которые должны быть собраны из commend). Итак, есть ли такая конвенция? Как сделать мои файлы установленных программ хорошо организованными, чтобы они не разваливались на части.
Все программное обеспечение, написанное на таких языках, как C, C ++, Java, C # и т. Д., Должно быть скомпилировано. Используете ли вы Windows, OS X, Android, iOS, Ubuntu или любой другой дистрибутив GNU / Linux, это одинаково верно. Он не имеет ничего общего с Linux, за исключением того, что люди чаще распространяют исходный код в Linux. В Windows вам обычно разрешено запускать программу, и вы никогда не получите файлы .c, что объясняет, что программа на самом деле делает с вашей системой.
Если вы получаете только исходный код, то это верный признак того, что программное обеспечение является либо исключительно специализированным, либо что оно предназначено для использования не обычными пользователями, а для разработчиков. В противном случае вы получите файл .deb для двойного щелчка. Для этого вам не нужны никакие мастера, кроме случаев, когда разработчики нуждаются в вашей настройке, и в этом случае они будут отображать диалоги.
В любом случае исходный пакет должен иметь скрипт сборки, который поместит все готовые файлы на свои места. Это действительно довольно просто. Сначала вы запустите программу для адаптации программного обеспечения к вашей системе. Затем вы скомпилируете программное обеспечение и затем установите его. Это все автоматически. Старый способ сделать это - запустить что-то вроде ./configure; make && sudo make install
, но это установит приложение вне системы пакетов, что является плохой вещью, потому что его нельзя будет удалить с помощью обычных инструментов, и это может конфликтовать с другими программное обеспечение, которое вы устанавливаете. Таким образом, вместо этого вы будете использовать checkinstall, чтобы сначала создать пакет, а затем установить этот пакет.
Итак, вот как обычно будет выглядеть этот процесс:
./configure
make
sudo checkinstall
Если вы не хотите устанавливать программное обеспечение в обычных местах, тогда вы можете использовать ./configure --PREFIX=/some/directory
( обычно / opt) вместо.
Эта страница содержит подробную информацию с реальными примерами: https://help.ubuntu.com/community/CompilingSoftware