| Summary: | Скрип /usr/bin/nxloadconfig рассчитан на CUPS/1*, в сизифе присутствует CUPS/2.1 | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Стас <stas.grumbler> |
| Component: | freenx-server | Assignee: | Michael Shigorin <mike> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P3 | ||
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
Ошибся в выражении для sed. Правильно и ещё короче строка 696 будет такой: [ $( strings /usr/sbin/cupsd | sed -n '/^CUPS\/[0-9.]*$/s|.*/\([0-9]\+\.[0-9]\+\)[^0-9].*|\1 >= 1.2|p' | bc ) -ne 1 ] && \ |
Команда `/usr/bin/nxloadconfig --check` сообщает об ошибке: (standard_in) 1: syntax error /usr/bin/nxloadconfig: line 696: [: -ne: ожидается использование унарного оператора В строках 696-697 находится проверка версии CUPS: [ $(echo "`strings $COMMAND_CUPSD | egrep 'CUPS\/1\.' | head -1 | sed 's|CUPS\/\(1\.[0-9]\+\).*|\1|'` >= 1.2" | bc) -ne 1 ] && \ WARNING="yes" && echo "Warning: Invalid cupsd version of \"$COMMAND_CUPSD\". Need version more or equal than 1.2." Пустой результат появляется в цепочке: strings $COMMAND_CUPSD | egrep 'CUPS\/1\.' Дело в том, что в строках файла /usr/sbin/cupsd нет подстроки "CUPS/1.", зато есть "CUPS/%d" и CUPS/2.1 По смыслу условия "версия CUPS больше 1.2" думаю, будет правильным модифицировать регулярное выражение egrep так: strings $COMMAND_CUPSD | egrep 'CUPS\/[1-9]\.' Или упростить всёю цепочку (sed может и грепать, и взять только первую строку из найденных): [ $(echo "`strings $COMMAND_CUPSD | sed -n '/^CUPS\/[0-9.]*$/{s/[^0-9.]//gp;q}'` >= 1.2" | bc) -ne 1 ] && \ WARNING="yes" && echo "Warning: Invalid cupsd version Но IMHO в Altlinux надёжнее извлечь версию из rpm: rpm -qf $COMMAND_CUPSD | cut -d - -f 2 | sed s/[^0-9.]//g