Если я загружу исходный код для mytop , распакую архив и проверю его на компилируемость и предупреждения Perl...
perl -cw mytop
Я понял:
Useless use of private variable in void context at mytop line 994. "my" variable $data masks earlier declaration in same scope at mytop line 1028. mytop syntax OK
Изучение исходного кода подтверждает эти предупреждения. В строке 994 имеем:
994 print GREEN() if ($Ratio_now => 80.0);
Оператор толстой стрелки ('=>' )должен быть оператором сравнения числового равенства ('==' ).
Есть два объявления $data в одной области видимости:
1020 my($data) = Hashes('show global variables like "read_only"'); ... 1028 my($data) = Hashes('SHOW SLAVE STATUS');
Таким образом, исходный код является -оптимальным кодом Perl 5.
У меня нет Gentoo, но, учитывая номера строк, я подозреваю, что пакет Gentoo не смог исправить эти проблемы. (У меня Ubuntu; версия mytop для Debian/Ubuntu не выдает этих предупреждений и сильно отличается от исходного кода.)
Несмотря на предупреждения, исходный код компилируется. Следовательно, предупреждения, которые выдает исходная версия, могут не объяснять segfaults, которые вы видите. Но я думаю, вам нужно обсудить эту проблему с теми, кто поддерживает mytop для Gentoo.
Выполнение MANPATH="/path/to/somewhere:$MANPATH"
означает "добавить /path/to/somewhere
к PATH
".
Выполнение MANPATH="/path/to/somewhere"
означает «удалить все, что MANPATH
хранит, и установить его в /path/to/somewhere
»
Следует ли вам это делать или нет, зависит от того, хотите ли вы перезаписать или добавить к переменную MANPATH
.