libfaketime и Mac OS, LD_PRELOAD

Большинство сервисных профессионалов в конечном счете достигает точки, где они - удобные выразительные клиенты "Ваша текущая установка, является неправильным/опасным. Я не собираюсь касаться его, не делая его правильным".

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

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

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

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

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

4
31.01.2012, 05:11
1 ответ

Используйте DYLD_INSERT_LIBRARIES вместо LD_PRELOAD на Mac OS. Вы, возможно, должны установить DYLD_FORCE_FLAT_NAMESPACE также. Например.

DYLD_INSERT_LIBRARIES=./libfaketime.so.1 DYLD_FORCE_FLAT_NAMESPACE=y FAKETIME="-15d" date
5
27.01.2020, 20:53

Теги

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