Wednesday, April 21st, 2010 12:13 pm

Знаете, некоторые учебники для начинающих юниксоводов рекомендуют в целях безопасности в скриптах явно указывать PATH. Ну, типа, мало ли, в каких условиях его  запускать будут, лучше указать явно, чтоб не запустилось чего лишнего из ~/bin, /usr/local/,  и т.п.

Вот начитавшись таких учебников, тут некоторые товарищи и написали в скрипте PATH=/usr/bin:/usr/local/bin

А я потом три дня бился головой об стенку, пытаясь понять, чего ж оно не работает при переносе на другую систему. А на этой системе tar, rm, mv и прочая стандартная лабуда оказались в /bin. Ну и, конечно, сообщения об ошибках были заботливо перенаправлены в /dev/null, чтоб их случайно никто не увидел.

Уроды.

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

Wednesday, April 21st, 2010 11:23 am (UTC)
а ptrace на что тебе дан?
Wednesday, April 21st, 2010 11:26 am (UTC)
не ptrace, а strace. это линукс.
ну и вообще, отлаживать им перловые скрипты - это извращение :)
Wednesday, April 21st, 2010 11:33 am (UTC)
ну, я давно уже не админил :)

Не извращение, а viable diagnostic tool.
Wednesday, April 21st, 2010 11:34 am (UTC)
оно удобно, если заранее знаешь, что искать. а там огроменный перловый скрипт, который что-то откуда-то закачивает, разворачивает, читает, обрабатывает, пишет в другие файлы, копирует на другие машины... на уровне системных вызовов трассировать, что он там пытается сделать и где обламывается - замучаешься.
Wednesday, April 21st, 2010 11:38 am (UTC)
"замучаешься" - это в сапе дебаггером по т.н. "enjoy"-транзакциям ходить.
А strace+grep - это цветочки.
Wednesday, April 21st, 2010 11:44 am (UTC)
Ага. Я дошел до следующей стадии - "все свое ношу с собой". Ибо задолбало - тут одно, тут другое, а тут третье ... Софт становится практически корпративным ...
Wednesday, April 21st, 2010 11:47 am (UTC)
тоже вариант, но тогда надо в скрипте подписать, что он хочет такой-то набор программ, которые лежат там-то, иначе всё сломается.
Wednesday, April 21st, 2010 11:50 am (UTC)
"Все свое с собой" - каталог, в котором собрано все. Начиная от библиотек и заканчивая бинарниками. а в "голове" - скрипт типа start.sh, который ставит все чего надо куда надо и пускает :) И пофиг на пакетные менеджеры, установленный софт и версию библиотек :)
Wednesday, April 21st, 2010 12:00 pm (UTC)
Я под линукс уже сто лет скрипты не писал, но может имело смысл юзать PATH=/usr/bin:/usr/local/bin:%PATH% ?
И было бы щщасте?
Wednesday, April 21st, 2010 12:02 pm (UTC)
в общем да, вариант. только в линуксе стандартными местами являются /bin и /usr/bin. /usr/local/bin, в отличие от фри, стандартными пакетами не используется, там обычно лежит что-то совсем вручную поставленное.