Проверка совместимости между ядром utils и более старыми системами GNU/Linux

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

Во-вторых, "лучший" способ сделать это от оболочки будет варьироваться от системы до системы.

Linux:

/sbin/ip addr show eth0 | awk -F"[ /]+" '/inet / {print $3}'

> = Солярис 11:

ipadm show-addr net0/v4 | awk -F"[ /]+" '/ok/ {print $5}'

Mac OS X / Darwin:

ipconfig getifaddr en0

Даже идущий наименьший общий знаменатель и использование ifconfig не будет последовательно, потому что выходной формат может измениться. Однако для чистки примера используйте это:

ifconfig eth0 | awk -F"[ :]+" '/inet / {print $4}'

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

2
16.07.2013, 17:20
2 ответа

Пока системные вызовы существуют в самом ядре, версия используемого coreutils не имеет значения. И coreutils не использует никого экзотичного (для Linux) системные вызовы, таким образом, Вы, вероятно, не столкнетесь ни с какими несовместимыми утилитами.

Однако захватите SRPM, замените tarball внутри, восстановите его, и использование это вместо этого.

2
27.01.2020, 22:01
  • 1
    Спасибо @Ignacio. Когда Вы сказали, "захватывают SRPM, заменяют tarball, и т.д.", я не знаком с тем процессом (счастливый запустить другой поток при необходимости). Это - что-то, что я могу обойтись без полномочий пользователя root? –  Amelio Vazquez-Reina 16.07.2013, 17:00
  • 2
    Большая часть из него можно обойтись без корня. Заключительная часть установки не так. –  Ignacio Vazquez-Abrams 16.07.2013, 17:04

Трудно знать, и Вы не можете получить гарантию. Например, в какой-то момент, некоторые версии GNU head/tail остановленная поддержка head -1 (вариант устаревший head -n 1) то, чтобы заставлять много сценариев повредиться (они были восстановлены позже).

Вы найдете, что были удалены некоторые опции устаревшие. Например, GNU touch не имеет a --file опция больше. Обычно это было бы маловероятно, чтобы они использовались, но Вы никогда не будете знать, пока Вы не столкнетесь с проблемой.

2
27.01.2020, 22:01

Теги

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