TOUTES LES MANIPULATION DÉCRITES ICI
SONT CRITIQUES...
VOUS LES RÉALISEZ A VOS PROPRES RISQUES...
Veuillez lire attentivement toutes les explications avant de procéder aux
manipulations.
Ce problème n'est pas lié au logiciel BeDesk. Il provient d'un conflit entre
le système d'impression Java (JavaPrinting) et certaines améliorations apportées
par CUPS 1.2.
Généralement, le problème survient lorsqu'on utilise, sous Linux,
conjointement Java 5 ou Java 6 avec CUPS 1.2 et l'interpréteur postscript
Ghostscript tout en disposant d'une imprimante non postscript.
Le problème a été soumis au support technique de Sun (qui s'occupe du
développement du système Java) ainsi qu'aux développeurs du système CUPS. Il
n'est donc pas exclu qu'une solution élégante soit proposée par l'une des partie
mise en cause dans le conflit.
Pour notre part, nous faisons tout notre possible pour apporter une solution
alternative (et, normalement, temporaire) à ce problème.
Ce problème a été documenté dans des articles des supports techniques CUPS et
Java. Pour références,vous pouvez consulter les pages suivantes:
Vous pouvez également consulter la page suivante:
Pour résoudre le problème, nous vous proposons d'utiliser un patch en 2
parties:
- La première partie effectue des correction dans la configuration du
système et ajoute un filtre "garde-fou" dans la liste des filtres de CUPS.
- La deuxième partie doit être lancée directement dans la session de
l'utilisateur et crée un fichier de configuration personnalisé qui permet de
contourner la configuration CUPS du système d'exploitation (afin de minimiser
au maximum des modification dans le système).
Comment appliquer le patch ?
- Télécharger cet archive :
javaCUPS12-patcher.zip et extrayez sont contenu dans votre dossier
utilisateur (la session où vous utilisez BeDesk).
- Vous devriez obtenir 2 dossiers : le premier s'appelle "1" et le
suivant "2"...
- Ouvrez un terminal et placez-vous dans le dossier "1" à l'aide de la
commande "cd <chemin>" bien connue.
- Passez en mode administrateur "root" en utilisant la commande "su" puis en
introduisant votre mot de passe administrateur.
- Appliquez le premier patch à l'aide de la commande "./javacups12-patcher
INSTALL". Si vous le souhaitez, vous pouvez aussi lancer ce patch de cette
façon : "python javacups12-patcher INSTALL" (la pacth est en réalité un script
Python).
- Quittez la session "root" en introduisant la commande "exit".
- Déplacez-vous maintenant dans le dossier "2".
- Là, en tant qu'utilisateur, vous allez lancer la deuxième partie du patch
à l'aide de la commande : "./userPatchPart" (ou si vous préférez : "bash
userPatchPart").
- Pour que les patchs prennent effet, vous devez redémarrer le serveur CUPS.
Si vous ne savez pas comment faire, le plus simple consiste encore à
redémarrer l'ordianteur.
Que fait la première partie du patch ?
L'application du patch javacups12patcher permet de réaliser les opérations
suivantes:
- Vérifier et corriger la présence du fichier « /usr/lib/libcups.so » non
présent dans une installation CUPS 1.2 mais recherché par les exécutables Java
5 et 6. Si le fichier n'est pas présent, un lien est automatiquement créé vers
le fichier « /usr/lib/libcups.so.2 » typiquement présent dans CUPS 1.2.
- Créer un filtre CUPS qui supprime automatiquement l'option «
DeferredMediaSelection » des fichiers Postscript envoyés à l'interpréteur
Postscript. Cette fonction n'est pas correctement traité lorsque le système
d'impression est lié à une imprimante non postscript. Si vous utilisez
effectivement une imprimante postscript, vous pouvez utiliser le patch pour
corriger le lien libcups.so. Toutefois, vous devriez consulter la note en bas
du fichier LISEZ-MOI.txt dans le dossier "1".
Que fait la deuxième partie du patch ?
Cette partie consiste simplement à créer le fichier "~/.cups/client.conf" et
d'y placer l'option "ServerName 127.0.0.1" (si vous utilisez un serveur distant, introduisez l'IP du serveur).
Si cela ne marche pas...
La principale raison d'un échec provient du fait que l'utilisateur n'a pas bien suivi la procédure à la lettre...
N'oubliez pas que le premier patch doit être exécuté sous "root" et le deuxième en tant que l'utilisateur dans le dossier de l'utilisateur en cours (le deuxième patch n'affecte donc pas les autres comptes utilisateurs et ne peut pas être utlisier pour un autre compte que celui où il est démarré).
Si vous êtes vraiment sûr d'avoir suivi la procédure à la lettre, essayez ceci:
Vous pouvez retirer les modifications apportée à votre système tout
simplement en lançant le patch du dossier "1" avec l'option REMOVE. Exemple:
"./javacups12-patcher REMOVE" en tant qu'utilisateur "root".
Vous pouvez ainsi restaurer votre configuration CUPS dans l'état d'avant le
patch.
Pour ce qui est du fichier "~/.cups/client.conf", il suffit soit de le
supprimer ou de replacer l'ancien fichier "client.conf" sauvegardé par le
patcher en "client.conf.old".
Si vous appliquer cette procédure, vous retrouvez votre configuration
initiale. Bien entendu, celle-ci prendra effet dès que CUPS aura été redémarré.
Voici une autre alternative : gtklp...
Installez l'outil "gtklp" (disponible pour la plupart des distribution Linux). Pour cela, suivez la procédure habituelle pour votre distribution et rechercher le paquet "gtklp". Installez celui-ci de préférence à partir du gestionnaire de paquets de votre système.
Lorsque ce programme est installé, testez-le en introduisant la commande 'gtklp' dans un terminal. Le programme doit s'aouvrir...
Si tout va bien, ouvrez BeDesk et modifiez l'option "Système" / "Paramètres système" / "Options du système d'impression" en sélectionnant "Utiliser la ligne de commande" et remplacer la commande "lpr {PDF}" par "gtklp {PDF}" (attention "PDF" est placé entre des accolades et non des parenthèses). Appliquez.
Si vous avez bien configuré BeDesk, les impressions passent par l'outil gtklp.