Эта ошибка запускается как взаимодействие между гутенпринтом
, фоматическим
и чашками
.
gutenprint
, / usr / lib / cups / driver / foomatic
(который является foomatic -db-engine
в Arch Linux), /usr/share/foomatic/db/source/driver/gutenprint-ijs*.xml
. Информационное обсуждение этой проблемы [ уже здесь ], поэтому я привожу лишь краткое изложение:
gutenprint
устанавливает два сравнительно больших файла XML, а именно /usr/share/foomatic/db/source/driver/gutenprint-ijs-simplified.5.2.xml
и / usr / share / foomatic / db / source / driver / gutenprint-ijs. 5.2.xml
(как в текущей версии на момент написания этой статьи). foomatic
или один из его подпакетов ( foomatic-db-engine
в Arch Linux) установите сценарий perl / usr / lib / cups / driver / foomatic
. / usr / lib / cups / driver / foomatic list
, что занимает слишком много времени для больших файлов XML (это ошибка из / usr / lib / cups / driver / foomatic
). В конце концов, это может закончиться, но время ожидания CUPS истекает раньше, не получив никакой информации о драйверах принтера, и вызывает эту странную Success
-ошибку. Поскольку он не получил информацию о драйверах принтеров, невозможно добавить принтеры через какой-либо интерфейс в CUPS, кроме ручного редактирования файлов конфигурации. Итак, пока / usr / lib / cups / driver / foomatic
не исправлен для ускорения работы с большими файлами, вероятно, лучшим решением будет, если вы хотите иметь оба gutenprint
и полная установка foomatic
, чтобы вручную удалить два больших файла XML, предоставленных gutenprint. (Увеличение тайм-аута в CUPS не годится, так как можно ждать часами.)
Для Arch Linux, если пакет собирается локально (например, через систему сборки Arch или путем установки с помощью yaourt
и настроив customizepkg
), можно применить следующий патч к PKGBUILD
из gutenprint
, чтобы внести изменения в пакет:
--- PKGBUILD.old 2016-04-14 18:13:15.000000000 +0200
+++ PKGBUILD.new 2016-04-14 18:41:47.000000000 +0200
@@ -47,5 +47,8 @@
package() {
cd ${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
+
+ # The following line was added by '"'customizepkg-scripting'"', script '"'$0'"', in order to work around the bug described at https://bugs.archlinux.org/task/47718
+ rm -fv "${pkgdir}"/usr/share/foomatic/db/source/driver/gutenprint-ijs*.xml
}
Начальная точка скрывает файл из некоторых списков каталогов . Это происходит из-за исторического поведения команды ls
, из-за которой многие программы использовали начальные точки для обозначения файлов, которые не должны отображаться в списках каталогов, что, в свою очередь, приводит к тому, что многие файловые менеджеры скрывают такие файлы по умолчанию.
Тильда является необычным символом в именах файлов, поэтому риск столкновения имени файла, выбранного пользователем, невелик. Почему тильда? Тильды особенно необычны в начале имен файлов, потому что ведущая ~
означает «домашний каталог» в оболочках и многих других программах. Таким образом, добавление тильды вряд ли вызовет столкновение. Возможный дополнительный фактор, потому что, когда он находится в конце имени файла, это традиционный способ именования резервных копий , поэтому добавление тильды к имени файла имеет привкус «какого-то файла». это связано с этим другим файлом, но это не тот файл, который обычно нужен пользователю» (, но он не может быть в конце, потому что он уже занят ). Тильда, возможно, также была вдохновлена файлами блокировки, используемыми Microsoft Office, которые начинаются с ~$
.
Хэш в конце гарантирует, что файл не имеет расширения, которое могли бы распознать другие программы. Если файл назывался .~lock.MyDocument.odt
, файловые менеджеры предлагали открыть его в LibreOffice. Почему хэш, а не какой-то другой символ? Hash имеет небольшую традицию использования в именах файлов блокировки, например, Emacs использует .#
, за которым следует имя редактируемого файла.
Если программа использует файл блокировки для чего-либо, программа должна выбрать имя этого файла блокировки.
Имя, выбранное LibreOffice, похоже, является скрытым именем, созданным таким образом, что маловероятно его столкновение с ранее -существующим именем файла, и в то же время специфичным для любого документа, который вы редактируете в данный момент.