История изменений
Исправление Xintrea, (текущая версия) :
Вылезла еще одна проблема. В подкаталогах /usr/share/man/ru man1, man2 и т.д. еще есть куча линков. Когда переименовывались «настоящие» файлы «*.xz.gz», то в этот момент не переименовывались файлы-линки, т.к. они становились некорректными.
Поэтому пришлось написать скрипт (в баше совсем не силен, посему php), который надо от рута выполнить в каталоге /usr/share/man/ru:
<?php
$output=shell_exec('find . -iname "*.xz.gz" -type l');
echo $output;
$fileNames=explode("\n", $output);
foreach($fileNames as $fileName) {
// Имя файла
echo "File: ".$fileName."\n";
// Информация о файле
$info=exec('file '.$fileName);
echo "Info: ".$info."\n";
// Имя файла, куда указывает линк
$chunks=explode(" ", $info);
$linkFileName="./".$chunks[ count($chunks)-1 ];
echo "Link: ".$linkFileName."\n";
// Новые правильные имя файла и имя линка
$newFileName=substr($fileName, 0, -3);
$newLinkFileName=substr($linkFileName, 0, -3);
echo "New File: ".$newFileName."\n";
echo "New Link: ".$newLinkFileName."\n";
exec('rm -f '.$fileName); // Старый файл-линк удаляется
exec('ln -s '.$newLinkFileName.' '.$newFileName); // И создается новый
}
?>
# mandb
Обновление индексного кэша для пути `/usr/share/man/ru/man3'. Ждите...mandb: предупреждение: /usr/share/man/ru/man3/atol.3.xz ссылается на несуществующий объект
Обновление индексного кэша для пути `/usr/share/man/ru/man8'. Ждите...mandb: предупреждение: /usr/share/man/ru/man8/tcb_convert.8.xz: whatis анализ tcb_convert(8) не удался
mandb: предупреждение: /usr/share/man/ru/man8/tcb_unconvert.8.xz: whatis анализ tcb_unconvert(8) не удался
mandb: предупреждение: /usr/share/man/ru/man8/pam_unix.8.xz: whatis анализ pam_unix(8) не удался
mandb: предупреждение: /usr/share/man/ru/man8/pam_tcb.8.xz: whatis анализ pam_tcb(8) не удался
Обновление индексного кэша для пути `/usr/share/man/ru/man5'. Ждите...mandb: предупреждение: /usr/share/man/ru/man5/passwd.5*: конкурирующие расширения
mandb: предупреждение: /usr/share/man/ru/man5/tcb.5.xz: whatis анализ tcb(5) не удался
Обновление индексного кэша для пути `/usr/share/man/ru/man1'. Ждите...mandb: предупреждение: /usr/share/man/ru/man1/su.1*: конкурирующие расширения
mandb: предупреждение: /usr/share/man/ru/man1/login.1*: конкурирующие расширения
mandb: предупреждение: /usr/share/man/ru/man1/passwd.1*: конкурирующие расширения
завершено.
Проверка побочных cat в /usr/share/man/ru...
Проверка побочных cat в /var/cache/man/ru...
Обработка справочных страниц в /usr/local/man...
В 7 man-подкаталогах содержатся более новые справочные страницы.
Добавлено 1624 справочные страницы.
Добавлено 0 побочных cat-страниц.
Вычищено 0 старых записей базы данных.
Исходная версия Xintrea, :
Вылезла еще одна проблема. В подкаталогах /usr/share/man/ru man1, man2 и т.д. еще есть куча линков. Когда переименовывались «настоящие» файлы «*.xz.gz», то в этот момент не переименовывались файлы-линки, т.к. они становились некорректными.
Поэтому пришлось написать скрипт (в баше совсем не силен, посему php), который надо от рута выполнить в каталоге /usr/share/man/ru:
<?php
$output=shell_exec('find . -iname "*.xz.gz" -type l');
echo $output;
$fileNames=explode("\n", $output);
foreach($fileNames as $fileName) {
// Имя файла
echo "File: ".$fileName."\n";
// Информация о файле
$info=exec('file '.$fileName);
echo "Info: ".$info."\n";
// Имя файла, куда указывает линк
$chunks=explode(" ", $info);
$linkFileName="./".$chunks[ count($chunks)-1 ];
echo "Link: ".$linkFileName."\n";
// Новые правильные имя файла и имя линка
$newFileName=substr($fileName, 0, -3);
$newLinkFileName=substr($linkFileName, 0, -3);
echo "New File: ".$newFileName."\n";
echo "New Link: ".$newLinkFileName."\n";
exec('rm -f '.$fileName); // Старый файл-линк удаляется
exec('ln -s '.$newLinkFileName.' '.$newFileName); // И создается новый
}
?>