Автор Тема: hp-plugin, как обновлять автоматически?  (Прочитано 19193 раз)

Оффлайн Anton Shevtsov

  • Начинающий
  • *
  • Сообщений: 47
Вопрос, который меня начинает немного мучить.
hplip. Печать работает без всяких проблем. Сканирование, конечно после установки hp-plugin.
Но проходит обновление, hplip становится новее, а hp-plugin надо ручками.. я делал expect скрипт который качает и нажимает все предлагаемые вопросы. Но мне не нравится этот способ. Есть другое решение?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Мне бы тоже хотелось узнать этот момент, почему бы плагин не класть, например, вместе с пакетом hplip.

Я раньше выходил из ситуации так:
yes \ | hp-plugin -iНо теперь ситуация изменилась, скрипт вот такой вопрос стал задавать:
error: Unable to recieve key from keyserver
Do you still want to install the plug-in? (y=yes, n=no*, q=quit) ?
Соответственно скрипт прерывает свою работу.

Я обновляю hplip через puppet и после каждого обновления пакета выполнялась команда выше. Теперь нужна альтернатива...
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Полный текст ошибки:
...
Receiving digital keys: /usr/bin/gpg --homedir /root/.hplip/.gnupg --no-permission-warning --keyserver pgp.mit.edu --recv-keys 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9
hp-plugin[7149]: debug: gpg: запрашиваю ключ A59047B9 с сервера hkp pgp.mit.edu
hp-plugin[7149]: debug: gpg: запрашиваю ключ A59047B9 с сервера hkp pgp.mit.edu
...
hp-plugin[7149]: debug: gpg: запрашиваю ключ A59047B9 с сервера hkp pgp.mit.edu
gpgkeys: key 4ABA2F66DBD5A95894910E0673D770CDA59047B9 can't be retrieved
gpg: не найдено данных формата OpenPGP.
gpg: Всего обработано: 0
gpg: ошибка связи с сервером ключей: keyserver helper general error
gpg: ошибка связи с сервером ключей: неизвестный алгоритм с открытым ключом
gpg: сбой при получении с сервера ключей: неизвестный алгоритм с открытым ключом
hp-plugin[7149]: debug: gpg: запрашиваю ключ A59047B9 с сервера hkp pgp.mit.edu
gpg: запрашиваю ключ A59047B9 с сервера hkp pgp.mit.edu
...
gpg: запрашиваю ключ A59047B9 с сервера hkp pgp.mit.edu
gpgkeys: key 4ABA2F66DBD5A95894910E0673D770CDA59047B9 can't be retrieved
gpg: не найдено данных формата OpenPGP.
gpg: Всего обработано: 0
gpg: ошибка связи с сервером ключей: keyserver helper general error
gpg: ошибка связи с сервером ключей: неизвестный алгоритм с открытым ключом
gpg: сбой при получении с сервера ключей: неизвестный алгоритм с открытым ключом
()
error: Unable to recieve key from keyserver
Do you still want to install the plug-in? (y=yes, n=no*, q=quit) ? hp-plugin[7149]: debug: Unlocking: /var/hp-plugin.lock

Может кто подскажет как победить ?
« Последнее редактирование: 14.02.2019 21:08:36 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
hp-setup тоже поломался. Новые принтеры не ставит требует установки hp-plugin хотя он уже десять раз установлен.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
hp-setup тоже поломался. Новые принтеры не ставит требует установки hp-plugin хотя он уже десять раз установлен.
Да неее, я вот недавно какого-то нового "малыша" от HP ставил. Бывает правда вредничает, не находит с первого раза нужный PPD, но назад возвращаешься и уже на следующий раз обычно находит. Или прям недавно ещё новый hplip приехал ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
Не знаю у меня уже месяц не работает по-человечески. Запускаешь hp-setup тут же вываливает ставь hp-plugin и дальше ни в какую. Ставишь, он его снова вываливает

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222
Не знаю у меня уже месяц не работает по-человечески. Запускаешь hp-setup тут же вываливает ставь hp-plugin и дальше ни в какую. Ставишь, он его снова вываливает
потому что hp-plugin от root не ставится, только от юзера...

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
Не знаю у меня уже месяц не работает по-человечески. Запускаешь hp-setup тут же вываливает ставь hp-plugin и дальше ни в какую. Ставишь, он его снова вываливает
потому что hp-plugin от root не ставится, только от юзера...
Я его от юзера и ставлю. Потом иду в рут и запускаю hp-setup. Он требует установить hp-plugin. Отказываешь он просто вылетает. Соглашаешься - он предлагает переустановить, переустанавливает и снова требует установить hp-plugin

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
потому что hp-plugin от root не ставится, только от юзера...
Куда он денется. Хотя одно время были с этим проблемы, но потом их исправили. Ставится, по крайней мере через: # hp-plugin -i
Сноси Винду, переходи на Линукс ! :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Я чинил недавно hp-plugin по баге. Заводите баги, пожалуйста.
Андрей Черепанов (cas@)

Оффлайн Anton Shevtsov

  • Начинающий
  • *
  • Сообщений: 47
hp-setup тоже поломался. Новые принтеры не ставит требует установки hp-plugin хотя он уже десять раз установлен.

Такое есть, да..



потому что hp-plugin от root не ставится, только от юзера...

ставится

hp-setup тоже поломался. Новые принтеры не ставит требует установки hp-plugin хотя он уже десять раз установлен.

и такое есть, в последних версиях

Вопрос в другом. Как ставить hp-plugin людям. После каждого обновления оббегать сотни машин?


p.s. скрипя зубами пользуюсь костылем


#!/usr/bin/expect -f
 
if { [file writable "/etc/hosts"]  } {
        exec echo 127.0.0.1 pgp.mit.edu  >>/etc/hosts
        } else {
        puts "file /etc/hosts is not writable"
        }

set timeout -1
spawn hp-plugin

#exp_internal 1

if {[file exist /usr/share/hplip/prnt/plugins/lj-x86_64.so]} {
expect  "Do you wish to download and re-install the plug-in? (y=yes*, n=no, q=quit) ?"
send -- "y\r"
}

expect  "Enter option (d=download*, p=specify path, q=quit) ?"
send -- "p\r"

expect  "Enter the path to the 'hplip-3.18.12-plugin.run' file (q=quit) :"
send -- "/opt/hplip/\r"

expect "Do you still want to install the plug-in? (y=yes, n=no*, q=quit) ?"
send -- "y\r"

expect  "Do you accept the license terms for the plug-in (y=yes*, n=no, q=quit) ?"
send -- "y\r"

exec sed -i "s/^127.0.0.1 pgp.mit.edu/\#127.0.0.1 pgp.mit.edu/" /etc/hosts

expect eof

« Последнее редактирование: 15.02.2019 07:13:11 от Anton Shevtsov »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Вопрос в другом. Как ставить hp-plugin людям. После каждого обновления оббегать сотни машин?
А ssh? Кстати, как вариант, можно сделать себе приватный репозиторий, всем его включить. Плагин собирать в пакет и выкладывать только себе. Можно, наверное, nosrc.rpm заготовить даже.

Оффлайн mayhl

  • Завсегдатай
  • *
  • Сообщений: 572
    • softmasterhl.awardspace.info
    • Email
Не знаю у меня уже месяц не работает по-человечески. Запускаешь hp-setup тут же вываливает ставь hp-plugin и дальше ни в какую. Ставишь, он его снова вываливает
потому что hp-plugin от root не ставится, только от юзера...
Я его от юзера и ставлю. Потом иду в рут и запускаю hp-setup. Он требует установить hp-plugin. Отказываешь он просто вылетает. Соглашаешься - он предлагает переустановить, переустанавливает и снова требует установить hp-plugin
Аналогично, в SL8.2(32) при настройке печати на сетевой HP MFP 426dw (доустановлены hp-lips-ы). Через system-config-printer можно установить только generic-postscript(ip) ужасного качества печати = другие варианты заканчиваются ошибкой, аналогично, через web cups (внутренняя ошибка cups). После hp-setup, hp-plugin появляется принтер (без указания, что сетевой) и, на удивление, печатает по сети, только опять с тем же ужасным качеством. HP софт из меню выдаёт, что нет устройства HP. Попытки установить ходят по кругу. 

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
Через system-config-printer можно найти HP 426, но искать надо вручную, т.к. автоматически он его не показывает, хоть тресни, но он там есть. Надо искать что-то вроде HP LaserJet Pro MFP 426-430 что-то такое (могу точно завтра посмотреть). У нас в школе тоже HP MFP 426. Надо обязательно только установить все PPD из реп, которые касаются hplip.

Оффлайн Anton Shevtsov

  • Начинающий
  • *
  • Сообщений: 47
Короче пока я остановился, вот на таком скрипте автоматического обновления плагина. Вроде все учел, хотя может проверки гдето еще надо, но работает вроде..


#!/bin/bash

if [ "$EUID" -ne 0 ]
  then echo "Please run as root"
  exit 255
fi

if [ `rpm -q expect` ]; then
apt-get update
apt-get install expect -y
fi


URLS='http://hplip.sourceforge.net/plugin.conf'

hplip_vers=`rpm -q --queryformat "%{VERSION}" hplip`

# если нет установленного пакета hplip выходим
if [ ! $? -eq 0 ]; then
exit 255
fi

version=0
# если plugin installed, смотрим версию и ложим в version
if [[ -f /var/lib/hp/hplip.state && `awk -F ' = ' '/installed/ {print $2}' /var/lib/hp/hplip.state` ]]; then
version=`awk -F ' = ' '/version/  {print $2}'  /var/lib/hp/hplip.state`
fi

if [[ ${hplip_vers} == ${version} ]]; then
#версии совпадают = выходим
exit 0
fi

plugin_url=`curl -s ${URLS} | grep ${hplip_vers}  | awk -F ' = ' '/url/ {print $2}'`

if [ ! $? -eq 0 ]; then
exit 255
fi

#download
echo ${plugin_url}
filename=`basename ${plugin_url}`
echo ${filename}

curl -s ${plugin_url} > /tmp/${filename}
if [ $? -eq 0 ]; then
format=`file /tmp/${filename} | awk -F ': ' '{print $2}'`
if [ ${format} != 'Bourne shell script text executable' ]; then
exit 255
fi
fi

chmod +x  /tmp/${filename}

(
cat <<"HEREDOC"
#!/usr/bin/expect -f
set plugin_filename [lindex $argv 0];

if { [file writable "/etc/hosts"]  } {
        exec echo 127.0.0.1 pgp.mit.edu  >>/etc/hosts
        } else {
        puts "file /etc/hosts is not writable"
        }

set timeout -1
spawn "$plugin_filename" --nox11 \-\- -i

#exp_internal 1

expect "Do you accept the license terms for the plug-in (y=yes*, n=no, q=quit) ?"
send -- "y\r"

expect "Done."
exec sed -i "/^127.0.0.1 pgp.mit.edu/d" /etc/hosts
HEREDOC
) > /tmp/hp-plugin-install

chmod +x /tmp/hp-plugin-install

/tmp/hp-plugin-install /tmp/${filename}