Где я должен ставить программное обеспечение, которое я скомпилирую?

Мне нужно скомпилировать некоторое программное обеспечение на моей машине Fedora. Где лучшее место, чтобы не мешать упакованному программному обеспечению?

112 голосов | спросил theotherreceive 10 PM000000110000003531 2010, 23:47:35

17 ответов


79

Правило, по крайней мере, в системах с ароматом Debian:

  • /usr/local для вещей, которые являются «общесистемными», т. е. /usr/local, как правило, находится в дистрибутиве по умолчанию $PATH и соответствует стандартной иерархии каталогов UNIX с помощью /usr/local/bin, /usr/local/lib и т. д.

  • /opt для вещей, которым вы не доверяете, чтобы сделать общесистемным, с префиксами для каждого приложения. /opt/firefox-3.6.8, /opt/mono-2.6.7 и т. д. Материал здесь требует более тщательного управления, но также с меньшей вероятностью нарушает вашу систему и проще удалить, так как вы просто удаляете папку, и она ушла.

ответил directhex 11 AM000000120000001831 2010, 00:36:18
46

Если вы действительно не хотите, чтобы это вообще мешало, не помещайте его в свой $PATH.

Если вы хотите его в $PATH, по крайней мере, не забудьте установить его на /usr/local. Я обнаружил, что там много программного обеспечения, даже если оно установлено дистрибутивом в /usr.

Мой любимый способ установки скомпилированного программного обеспечения находится в моем каталоге $HOME. Таким образом, вам не нужно использовать sudo для чего угодно, и он очень красиво отделен от остальной части вашей системы. Например:

mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install

И если вы захотите, вы можете добавить /home/username/stage/bin в свой $PATH.

ответил Sandy 10 PM000000110000001131 2010, 23:53:11
19

FHS говорит, чтобы положить его в /usr /local , где распределения не должны прикоснуться к нему. /usr/local/bin для двоичных файлов /usr/local/src для источника и /usr/local/lib для библиотек. См. Спецификация FHS для получения дополнительной информации

ответил xenoterracide 11 AM000000120000000631 2010, 00:09:06
10

В большинстве случаев мне нравится размещать свои собственные скомпилированные материалы в /opt. Это своего рода псевдостандартное место. Вы также можете рассмотреть /usr/local, но я предпочитаю, чтобы мои вещи были на 100% изолированы.

ответил Scott Anderson 10 PM000000110000001431 2010, 23:50:14
9

Поместите их в /usr/local/src.

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

/usr/local/src/postgresql-8.3.7

Затем я создаю для него символическую ссылку:

/usr/local/src # ln -s  postgresql-8.3.7 postgresql

Сделайте все свое здание в /usr/local/src/postgresql.

Выполнение этого способа помогает, когда вам нужно вышивать между версиями и документами, какую версию вы используете.

ответил Stephen Jazdzewski 10 PM000000110000004231 2010, 23:54:42
6

Это напоминает мне, мне нужно использовать checkinstall Чаще всего! Таким образом, я просто делаю обычный

 ./configure
 make

, за которым следует

 sudo checkinstall

, чтобы создать файл .deb ...

ответил Kevin Cantu 19 AM00000080000004231 2010, 08:21:42
5

Если есть возможность - я бы предложил составить ваше программное обеспечение, а затем создать пакет FC (я считаю, что он использует yum для установки пакетов программного обеспечения). Затем вы можете установить этот пакет своего собственного скомпилированного программного обеспечения и удалить его, не испортив всю систему.

ответил Eimantas 10 PM000000110000001231 2010, 23:50:12
5

Если вы хотите легко установить и удалить несколько приложений, которые вы создали самостоятельно, вы можете использовать Stow как простой менеджер пакетов.

ответил Daniel James 11 AM000000120000004531 2010, 00:07:45
5

В FHS , /usr/local/ используется для приложений, скомпилированных из источника, в то время как /opt/ используется для сторонних приложений, не поддерживаемых поставщиком вашей операционной системы.

ответил Aaron Toponce 19 AM000000110000001931 2010, 11:38:19
4

Две вещи, которые я бы рекомендовал:

Системная: используйте укладку и установите под /usr /local /stow /package- версия. Затем вы можете легко переключаться между версиями.

В моем доме или у меня нет /usr /local write permissions, я лично устанавливаю программы под ~ /.local, что намечено стандарт XDG .

Вы также можете использовать stow локально, хотя я никогда этого не делал:)

ответил elmarco 11 AM000000120000004731 2010, 00:07:47
3

У меня немного другая настройка, чем у большинства людей, потому что я много развиваю. У меня есть каталог /home /jackson /bin /, в который я устанавливаю материал, и я редактировал мой .bashrc, добавляя это:

export PATH=/home/jackson/bin/bin::$PATH
export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH

Я бы не сделал этого для всего, но его приятно во время разработки.

ответил jacksonh 11 AM000000120000000031 2010, 00:12:00
3

На самом деле не так сложно создавать deb или rpm из исходного tarball. Таким образом, вы можете использовать средства менеджера пакетов вашего дистрибутива, чтобы ваша система была чистой. Это то, что я делаю, большую часть времени: просто создайте небольшое количество оборотов.

ответил wzzrd 19 PM000000120000000931 2010, 12:10:09
2

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

ответил Hemant 10 PM000000110000004231 2010, 23:50:42
2

Всегда есть возможность «поместить его туда, где он принадлежит», но сначала напишите простой rpm.

ответил Nils 11 AM000000120000002131 2010, 00:02:21
1

Если вы хотите, чтобы ваше приложение было доступно для всех пользователей в системе, и у вас есть необходимые разрешения, используйте /opt. Если вы хотите, чтобы приложение было доступно только для вас (и root), используйте /home /username

ответил 11 PM00000040000002131 2010, 16:23:21
0

Самый простой способ сделать это - захватить исходный пакет (.src.rpm для RPMites), распаковать его, взломать новый источник /конфигурацию /что-то в нем, изменить версию соответствующим образом и строить. Установка этого делает ваш менеджер пакетов осведомлен о новом пакете, позволяет рассматривать его для зависимостей и удалять /обновлять.

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

ответил vonbrand 15 MarpmFri, 15 Mar 2013 19:12:51 +04002013-03-15T19:12:51+04:0007 2013, 19:12:51
0

Напишите RPM, это не сложно, есть рекомендации относительно того, куда положить вещи и делает деинсталляцию.

Если вы это сделаете, установите файлы под /usr, а не под /usr/local, как и все другие файлы, которые поступают через систему упаковки.

ответил user55149 22 SunEurope/Moscow2013-12-22T11:58:19+04:00Europe/Moscow12bEurope/MoscowSun, 22 Dec 2013 11:58:19 +0400 2013, 11:58:19

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132