Это чужая статья, полученная Анонимусом из окружающего Информационного Эфира.
Проверить справедливость данных в ней (как и верность приложенных файлов) — не имею возможности. Пользуйтесь с осторожностью.


S.M.A.R.T. (англ. Self-Monitoring, Analysis and Reporting Technology) — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя.

Дано

Есть Alpha-сервер (жёсткие диски, самоочевидно — SCSI).
На сервере крутится родная ОС (Tru64 Unix, aka OSF1 версии P5.1 1644). Платформа официально скорее мертва (причём уже лет с 10 как).
Проблема периодического выхода из строя жёстких дисков порождает естественное желание отслеживать статусы S.M.A.R.T.
Столь же естественно (как в силу статуса платформы, так и исходя из логики бухгалтерии) желание обойтись без использования мутных проприетарных решений. Откуда следует ориентация на smartmontools.

Проблема

В списке официально поддерживаемых smartmontools платформ Tru64 отсутствует (в общем и целом предсказуемо).

Решение

Однако, как подсказывает тов. гугль, приложение на данную платформу портировалось.
Толика внимания (в новом интерфейсе sourceforge.net недолго и заблудиться) и можно промыслить файл патча: smartmontools-5.33-osf1.patch.gz (в треде есть ещё два патча, но с ними уже непонятно куда и как они накладываются, в TODO, пока исхожу из ориентации на явно упомянутый).

Следующим очевидным шагом — добыть архив исходников (собственно smartmontools-5.33.tar.gz).

Наложить патч:

$ gunzip smartmontools-5.33.tar.gz
$ tar xf smartmontools-5.33.tar

(просто tar zxf smartmontools-5.33.tar.gz в наличной реализации не прокатит)

$ gunzip smartmontools-5.33-osf1.patch.gz
$ patch -p0 < smartmontools-5.33-osf1.patch

И собственно сборка на целевой платформе (квест с промышлением gcc в связи с сворачиванием поддержки платформы проходить не стал, в патче утверждается, что с 3.4.4 работает, но где брать пакет непонятно, собирать же гнутый компиллятор наличным при том, что наличный годится и для сборки собственно программы...).

Перво-напрево — убедиться в наличии (и работоспособности, "приятный" сюрприз при наличии привычки к СПО) компиллятора. ЕМНИП в версии 5.33 наличие компиллятора C++ (в данной традиции исполняемый файл зовётся cxx) не является необходимым условием, за зависимости навскидку не скажу, дальнейшие опыты проводились на системе с наличным и рабочим компилятором C++.

Утилиту управления ПО в Tru64 зовут setld, утилиту для прописывания используемых лицензий (внушаетЪ в куда бОльшей степени, чем традиционные для альтернативной ОС волшебные слова из 25 букв, и даже чем активация) — lmf.

Вторым шагом — установить необходимые зависимости (цитирую использовавшееся для сборки 5.33; на фоне наличия родных для платформы реализаций make'а и m4 не вполне очевидно, но GNU-версии работают совершенно иначе):

1. GNU make (3.82)
2. GNU m4 (1.4.15)
3. GNU autoconf (1.68)
4. GNU automake (1.7) (1.7.9)

Я в курсе известной ереси, но курить ещё и про сборку нативных пакетов... не на данном этапе (начинать с утилиты kits и далее в направлении Guide to Preparing Product Kits).

Уже перед сборкой имеет смысл переопределить переменную PATH (практически выставление приоритета GNU-версий):

$ export PATH=/usr/local/bin:$PATH

И завершающим этапом — сборка собственно smartmontools:
To build with Compaq C (CXX651V42):

$ cd smartmontools-5.33
$ ./autogen.sh
$ CC="cc -nodtk" ./configure
$ make
...


В таком виде (с умолчательными параметрами конфигурации), исполняемый файл —
/usr/local/sbin/smartctl

Файлы



Владимир
2012.12.06 00:48:56
#cid50190

Ответить

$ gunzip smartmontools-5.33.tar.gz
$ tar xf smartmontools-5.33.tar
(просто tar zxf smartmontools-5.33.tar.gz в наличной реализации не прокатит)

А почему не прокатит?

Владимир
2012.12.06 00:52:42
#cid50192

Ответить

#cid50190, Владимир

А почему не прокатит?

Вопрос снят.

imen
2014.10.14 16:35:17
#cid89804

Ответить

#cid50190, Владимир

А почему не прокатит?

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