Как я могу сделать исполняемый файл программы отовсюду

  1. /bin/sbin) были предназначены для программ, которые должны были быть на маленьком / раздел перед большим /usr, и т.д. разделы были смонтированы. В эти дни это главным образом служит стандартным местоположением для ключевых программ как /bin/sh, хотя исходное намерение может все еще быть важно для, например, установки на маленьких встроенных устройствах.

  2. /sbin, в отличие от /bin, для программ управления системой (не обычно используется обычными пользователями) необходимый прежде /usr смонтирован.

  3. /usr/bin для управляемых распределением программ обычного пользователя.

  4. Существует a /usr/sbin с теми же отношениями к /usr/bin как /sbin имеет к /bin.

  5. /usr/local/bin для программ обычного пользователя, не управляемых диспетчером пакетов распределения, например, локально скомпилированными пакетами. Вы не должны устанавливать их в /usr/bin потому что будущие обновления распределения могут изменить или удалить их без предупреждения.

  6. /usr/local/sbin, поскольку можно, вероятно, предположить эту точку, к /usr/local/bin как /usr/sbin кому: /usr/bin.

Кроме того, существует также /opt который является для монолитных пакетов нераспределения, хотя, прежде чем они были правильно интегрированы, различные дистрибутивы помещают Gnome и KDE там. Обычно Вы должны зарезервировать его для большого, плохо вели себя сторонние пакеты, такие как Oracle.

78
06.11.2010, 21:18
5 ответов

Если Вы просто вводите export PATH=$PATH:</path/to/file> в командной строке это только продлится в течение продолжительности сессии.

Если Вы хотите изменить его, постоянно добавляют export PATH=$PATH:</path/to/file> к Вашему ~/.bashrc файл (только в конце прекрасен).

54
27.01.2020, 19:30
  • 1
    Спасибо это работает. Для новичков как я не забудьте опускать угловые скобки <>. Как так: $PATH:/your/file/path –  SAm 10.06.2017, 13:57

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

Действительно ли эта программа является загруженной программой, которую Вы скомпилировали сами из источника?

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

Действительно ли эта программа является загруженной программой, которую Вы хотите сделать доступным как часть стандартных программ на компьютере?

Имеет смысл помещать этот вид приложения в стандартную папку. его довольно общее для использования каталогов, таких как/usr/local/bin для таких программ. Вы должны будете базироваться доступ, чтобы сделать это.

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

Создание папки в Вашем корневом каталоге назвало 'мусорное ведро' и размещение программы там. Вы, возможно, должны отредактировать свой сценарий входа в систему для добавления полного пути к этой папке (например,/usr/home/jeremy/bin)

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

24
27.01.2020, 19:30

Размещение ссылки на файл в /bin каталог не является лучшей вещью сделать по нескольким причинам.

  • Если фактический исполняемый файл находится в месте, которое некоторые пользователи не видят или выполняют, они рассматривают его как неработающий канал или дисфункциональную программу.
  • /bin каталог, как предполагается, резервируется для программ, которые требуются для выполнения системы (вещи как chmod, mkdir, и т.д.).

Можно на самом деле поместить (устанавливают) исполняемый файл в /usr/bin/ или даже /usr/local/bin/. Конечно, Вы вручную установили программу в той точке; Ваше распределение не собирается отслеживать его способ, которым это делает остальную часть Ваших программ - необходимо будет вручную обновить его, когда необходимый и вручную удаляют его, если Вы хотите, который уводят. Кроме того, необходимо будет знать, какие пакеты это зависит от (это кажется, что Вы уже используете программу, таким образом, это заботилось о, но в общем...).

Если я не настраиваю программу, которую я ожидаю, что другие пользователи будут использовать, это не то, что я обычно делаю: Я создаю каталог bin только для меня в моем корневом каталоге, и я изменяю свой профиль оболочки для добавления ~/bin/ к моему PATH переменная среды. Я нахожу легче отслеживать программы, я установил тот путь, потому что это разделяется от остальной части системы.

17
27.01.2020, 19:30

Если Вы хотите выполнить команду foo в каталоге Ваша оболочка в настоящее время находится в, у Вас в основном есть две опции:

  1. Ввести ./foo при приглашении оболочки.

  2. Добавьте . каталог (. название "текущего каталога") к PATH переменная среды; как Вы делаете это зависит от оболочки, которую Вы используете:

    • для оболочек типа Границы (удар, zsh, ksh, и т.д.) Вы пишете (см. эту страницу для получения дополнительной информации):

      export PATH=$PATH:.
      
    • для оболочек csh-типа (tcsh, csh) Вы пишете (см. эту страницу для получения дополнительной информации):

      set path = ( $path .)
      

Отметьте это 2. угроза безопасности в многопользовательских системах: вообразите Вас cd к каталогу /tmp и злонамеренный пользователь создал вредоносный названный двоичный файл ls там..

6
27.01.2020, 19:30
  • 1
    да, я думаю, что опции показывают Вам что Unix, позвольте нам, Вы делаете вещи, который считают плохой практикой. Добавление. к Вашему пути может также создать другие побочные эффекты, которые обычно плохи. –  The Unix Janitor 06.11.2010, 15:58

Сообщение с ПУТЬ открывает вам возможность по ошибке запускать вредоносные программы. Стандарт - это установка "локальных" вещей в папку / usr / local (см. FHS , где кодифицируется использование Unix: немного устарело, но дает обоснование)., / usr / local / bin обычно находится в ПУТИ для всех пользователей.

Мои "локально установленные" программы находятся в $ HOME / bin , стандартно настроены ./ configure --prefix = $ HOME ... , вместе с несколько (bash) псевдонимов, чтобы выбрать, например самодельный git поверх системного (неконфликтующие находятся в PATH в самом конце.

1
27.01.2020, 19:30

Теги

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