Добавление к пути по сравнению с соединением от / мусорного ведра

Я предложил бы изменить символ ESC на один, можно отправить легче в expect. Например, если Вы знаете, что не отправляете восклицательный знак, используете его в качестве символа ESC:

$ telnet -e ! 10.1.2.3 80
Telnet escape character is '!'.
Trying 10.1.2.3...
Connected to 10.1.2.3.
Escape character is '!'.
GET!
telnet> quit
Connection closed.
24
01.06.2015, 18:18
3 ответа
[112348] При компоновке[12116] вы обычно не компонуете [112839]/usr/local/* [112840] с [112841]/bin[112842], но это скорее историческая практика. В общем, есть несколько "технических" причин, по которым вы не можете делать то, что предлагаете.[12117]Ссылка на исполняемые файлы в [112843]/bin[112844] может вызвать проблемы:[12118]Вероятно, самой большой оговоркой будет, если в вашей системе пакеты управляются каким-либо менеджером пакетов, таким как RPM, dpkg, APT, YUM, pacman, pkg_add и др. В этих случаях вы, как правило, хотите, чтобы менеджер пакетов выполнял свою работу и управлял такими каталогами, как [113308]/sbin[113309], [113310]/bin[113311], [113312]/lib[113313] и [113314]/usr[113315]. Одним из исключений является [113316]/usr/local[113317], который, как правило, является безопасным местом, чтобы делать то, что вы считаете нужным на коробке, не беспокоясь о том, что менеджер пакетов будет вмешиваться в ваши файлы.[12119]Часто в исполняемых файлах, собранных для [113318]/usr/local[113319], этот PATH будет жестко закодирован в их исполняемых файлах. Также могут быть конфигурационные файлы, которые включены в [113320]/usr/local[113321] как часть установки этих приложений. Таким образом, связывание только с исполняемым файлом может привести к проблемам с нахождением этих приложений в файлах [113322].cfg[113323] позже. Вот пример такого случая:[12120]$ строки /usr/local/bin/wit | grep '/usr/local'. /usr/local/share/wit /usr/local/share/wit/ [12121]Та же проблема, которая возникает при поиске файлов [113326].cfg[113327], может возникать и с "вспомогательными" исполняемыми файлами, которые необходимо запустить основному приложению. Они также должны быть скомпонованы в [113328]/usr/bin[113329], зная, что это может быть проблематично и проявляться только тогда, когда вы действительно пытаетесь запустить скомпонованное приложение. ПРИМЕЧАНИЕ: [12122]/usr/bin[112852] в общем случае лучше избегать соблазна связываться с одним приложением в [112853]/usr/bin[112854].[12123]/etc/profile. d[12124]/etc/profile.d[112858].[12125] Такой файл, как этот, [112859]/etc/profile, можно легко добавить к каждому [112855]$PATH[112856]. d/maven.sh[112860]:[12126]Обычно вы делаете это как администратор, а не загрязняете этим настройки всех пользователей. [12127]Используя альтернативы[12128]Большинство дистрибутивов теперь предоставляют другой инструмент под названием [112861]альтернативы[112862] (Fedora/CentOS) или [112863]обновления-альтернативы[112864] (Debian/Ubuntu), которые вы также можете использовать для зацикливания на утилитах [112865]$PATH[112866], которые могут находиться за пределами [112867]/bin[112868]. Использование таких инструментов предпочтительнее, так как они больше соответствуют тому, что большинство администраторов считают "стандартной практикой", и поэтому облегчают передачу систем от одного администратора другому.[12129]Этот инструмент делает аналогичную вещь при создании ссылок в [112869]/bin[112870]; но он управляет созданием и уничтожением этих ссылок, так что проще понять предполагаемую настройку системы, когда это делается с помощью инструмента, по сравнению с [112867]/bin[112870]. Это я использую эту систему для управления Java Oracle на ящике:[12131]Вы можете увидеть эффект от этого:[12132]Мои $0.02[12133]Создание ссылок в [112871]/bin[112872], хотя это и правдоподобно, но большинство сисадминов, скорее всего, будут сильно отговаривать вас от этого:[12134]Будет хмуриться, потому что это рассматривается как обычай и может привести к путанице, если другой администратор должен будет поднять коробку [12135]Может привести к выходу системы из строя в будущем в результате этой "хрупкой" настройки. [12136]
31
27.01.2020, 19:41
[112480] Если вы хотите использовать симлинк, то лучше использовать симлинк на [113011]/usr/local/bin[113012]. На моем сервере я устанавливал локальное программное обеспечение в [113013]/opt/NAME[113014] и делал symlink двоичных файлов на [113015]/usr/local/bin[113016].[112481].
3
27.01.2020, 19:41
[112324]Ответы на заданные вопросы: [1299] Верно ли это? [12100] Нет [112814], это плохая практика.[12101] Есть ли какие-то скрытые побочные эффекты в моем предложении?[12102]Да[112818] есть несколько побочных эффектов. Ваше предложение может работать или не работать в зависимости от приложения, и может регрессировать или нарушаться в долгосрочной перспективе.[12103]Есть разумные причины [112819]не[112820] создавать такую символическую ссылку:[12104]Администраторы не "владеют" [113278]/бин[113279] (см. примечание 1), так как этот каталог принадлежит разработчикам операционной системы/дистрибутива. С другой стороны [113280]/usr/local[113281] является традиционным местом для программного обеспечения, собранного локальным администратором, [113282]/opt/[113283] является местом для разобранного программного обеспечения. Если вы создаёте файл или ссылку в [113284]/bin[113285], существует риск, что она будет перезаписана при установке пакета, в вашем случае это гипотетический пакет [113286]maven[113287], предоставляемый операционной системой, что может привести к регрессу, если локально собранный будет создан из более новых исходных текстов, чем версия операционной системы. Например, SVR4 [113288]pkgadd[113289] , debian [113290]dpkg[113291], redd-hat [113292]rpm[113293] и slackware tarballs слепо перезаписывают вашу символическую ссылку.[12105]Некоторые приложения ищут место, где они вызываются для получения конфигурационных файлов, плагинов и подобных ресурсов. Если вы вызываете приложение по символической ссылке, его код может не последовать за ним, а затем ищите эти файлы ресурсов в [113294]/usr/bin[113295], где их нет.[12106]В [113414]/usr/local/maven/bin[113415] могут быть другие двоичные файлы, и если вы не добавите этот каталог в вашу PATH, они станут недоступны. [113297] Удалено, так как вы уже учитываете это в вашей команде, связывая все потенциальные команды.[12107]Страница [113298]maven2[113299] говорит добавить эту директорию в вашу PATH (точно: [12108]Добавьте переменную окружения M2 в свой путь, например, экспортируйте PATH=$M2:$PATH[12109]). Используя другой подход, вы нарушаете этот шаг и идете неподдерживаемым путем. Конечно, если большинство пользователей системы являются потенциальными пользователями [113302]maven[113303], было бы более разумно установить [113304]PATH[113305] глобально, а не на каждый и каждый [113306].profile[113307]. Замечание 1:[12111]Документация по медленной работе:[12112]Стандарт иерархии Debian / файловой системы[12113]Документация Solaris:[12114]Простой тест, показывающий, что [112835]dpkg[112836] Debian не сохраняет существующую ссылку, даже если не используется опция [112837]--force-overwrite[112838]: [12115]
7
27.01.2020, 19:41

Теги

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