Дело об ошибке печати
От: Anton Batenev Россия https://github.com/abbat
Дата: 05.05.10 22:48
Оценка: 1 (1)
Hello!

Дело об ошибке печати.
avalon 1.0rc3 rev 317, zlib 1.2.3
Re: Дело об ошибке печати
От: DOOM Россия  
Дата: 06.05.10 02:33
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Hello!


AB>Дело об ошибке печати.

Такое ощущение, что procdump тут был просто для демонстрации... Как бе понятно, что если работало и перестало, то значит что-то поменялось в окружении — procmon сам напрашивался...
Re: Дело об ошибке печати
От: Константин Б. Россия  
Дата: 06.05.10 03:46
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Hello!


AB>Дело об ошибке печати.


А как подобное диагностировать в этом вашем линуксе?
Re[2]: Дело об ошибке печати
От: DOOM Россия  
Дата: 06.05.10 03:50
Оценка: 2 (1)
Здравствуйте, Константин Б., Вы писали:

КБ>А как подобное диагностировать в этом вашем линуксе?

strace и компания, например.
Re: Дело об ошибке печати
От: Roman Odaisky Украина  
Дата: 06.05.10 10:38
Оценка: :))
Здравствуйте, Anton Batenev, Вы писали:

AB>Дело об ошибке печати.


Ссылка битая, там почему-то по-русски всё, а Марк ведь по-английски пишет.

Правильная ссылка: http://blogs.technet.com/markrussinovich/archive/2010/04/12/3324570.aspx
До последнего не верил в пирамиду Лебедева.
Re[2]: Дело об ошибке печати
От: Roman Odaisky Украина  
Дата: 06.05.10 11:26
Оценка: +3
Здравствуйте, Константин Б., Вы писали:

КБ>А как подобное диагностировать в этом вашем линуксе?


Во-первых, пакетный менеджер никогда не удалил бы чужую библиотеку.

Во-вторых, провел эксперимент. Принтера нет, поэтому использовал печать в файл. Открыл твое сообщение в Файрфоксе, нажал Печать, выбрал стандартный системный псевдо-принтер в PDF, «распечатал». Получил PDF.

Затем полез грязными руками в /usr/lib и удалил libpng12.so.0.37.0. Повторил попытку печати. Печать не удалась, документ остался в очереди, CUPS не убилась, (псевдо-)принтер перешел в состояние «Idle — /usr/lib/cups/filter/pdftopdf failed», в логах: «PDF: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory».

Чтобы восстановить библиотеку, дал команду «dpkg-query -S libpng12.so.0». Хорошенько подумав (когда там уже переедут на какой-нибудь SQLite?!), она заявила, что файлы /usr/lib/libpng12.so.0 и /usr/lib/libpng12.so.0.37.0 входят в состав пакета libpng12-0. sudo aptitude reinstall libpng12-0 вернула бы всё на место (на самом деле я просто переименовал so-файл обратно).

Вот примерно так диагностировать и примерно так исправлять. Желающие могут поподробнее растолковать, как администратор из рассказа Марка исправил бы проблему, не имей он под рукой «another identically configured Windows XP system», и как копирование «the file from the working system» согласуется с фразой «You may install, use, access, display and run one copy of the Product on a single computer» и устным счетом в пределах единицы (к тому же «A license for the Product may not be shared or used concurrently on different Workstation Computers»). Да, обращаю внимание на то, что ни одна из вышеописанных команд не требует доступа к интернету — aptitude может брать пакеты из локального репозитария или из собственного кеша. Как вообще в MS Windows восстановить утраченный файл из состава какого-то пакета?



Мне однажды приходилось так делать, когда на разделе /usr повредилась файловая система и некоторые библиотеки пропали. aptitude reinstall вернула их все на место (а dpkg-query с помощью нехитрого скрипта показала, в каких именно пакетах недостает файлов).
До последнего не верил в пирамиду Лебедева.
Re[3]: Дело об ошибке печати
От: DOOM Россия  
Дата: 06.05.10 11:57
Оценка: 1 (1)
Здравствуйте, Roman Odaisky, Вы писали:

RO>Как вообще в MS Windows восстановить утраченный файл из состава какого-то пакета?


Из справки по msiexec:

Параметры восстановления
/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | код_продукта>
Восстановление продукта
p — только при отсутствии файла
o — если файл отсутствует или установлена старая версия (по умолчанию)
e — если файл отсутствует или установлена такая же либо старая версия
d — если файл отсутствует или установлена другая версия
c — если файл отсутствует или контрольная сумма не совпадает с подсчитанным значением
a — принудительная переустановка всех файлов
u — все необходимые элементы реестра, специфические для пользователя (по умолчанию)
m — все необходимые элементы реестра, специфические для компьютера (по умолчанию)
s — все существующие ярлыки (по умолчанию)
v — запуск из источника с повторным кэшированием локальных пакетов


Для ОС — загрузка с дистрибутива и выбор пункта "Восстановление системы".
Re[2]: Дело об ошибке печати
От: Anton Batenev Россия https://github.com/abbat
Дата: 06.05.10 14:19
Оценка:
Здравствуйте, Константин Б., Вы писали:

КБ> AB>Дело об ошибке печати.

КБ> А как подобное диагностировать в этом вашем линуксе?

Посмотреть логи в /var/log/cups, где будет написана причина ошибки. Как-то так:

E [24/Mar/2009:17:15:51 +0300] CUPS-Add-Modify-Printer: Unauthorized
E [27/Mar/2009:15:06:29 +0300] Unable to bind socket for address 0.0.0.0:631 - Address already in use.
avalon 1.0rc3 rev 318, zlib 1.2.3
Re[3]: Дело об ошибке печати
От: Константин Б. Россия  
Дата: 07.05.10 02:31
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Во-первых, пакетный менеджер никогда не удалил бы чужую библиотеку.


А причем тут пакетный менеджер?

RO>Во-вторых, провел эксперимент. Принтера нет, поэтому использовал печать в файл. Открыл твое сообщение в Файрфоксе, нажал Печать, выбрал стандартный системный псевдо-принтер в PDF, «распечатал». Получил PDF.


RO>Затем полез грязными руками в /usr/lib и удалил libpng12.so.0.37.0. Повторил попытку печати. Печать не удалась, документ остался в очереди, CUPS не убилась, (псевдо-)принтер перешел в состояние «Idle — /usr/lib/cups/filter/pdftopdf failed», в логах: «PDF: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory».


Это сработает только в этом хорошо подобранном частном случае.
Re[3]: Дело об ошибке печати
От: Константин Б. Россия  
Дата: 07.05.10 02:47
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, Константин Б., Вы писали:


КБ>> AB>Дело об ошибке печати.

КБ>> А как подобное диагностировать в этом вашем линуксе?

AB>Посмотреть логи в /var/log/cups, где будет написана причина ошибки. Как-то так:


AB>
AB>E [24/Mar/2009:17:15:51 +0300] CUPS-Add-Modify-Printer: Unauthorized
AB>E [27/Mar/2009:15:06:29 +0300] Unable to bind socket for address 0.0.0.0:631 - Address already in use.
AB>


А если не будет?
Re[4]: Дело об ошибке печати
От: DOOM Россия  
Дата: 07.05.10 03:01
Оценка:
Здравствуйте, Константин Б., Вы писали:

КБ>А если не будет?


К счастью, в линуксе как-то не принято падать совсем тихо — отладочный вывод можно получить практически всегда.
Ну а если проблема — то я уже писал: strace и компания.
Re[4]: Дело об ошибке печати
От: Anton Batenev Россия https://github.com/abbat
Дата: 07.05.10 15:50
Оценка:
Здравствуйте, Константин Б., Вы писали:

КБ> А если не будет?


Отключим газ
avalon 1.0rc3 rev 318, zlib 1.2.3
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.