Автор Тема: Установка лазерного принтера - Canon LBP6020B.  (Прочитано 9401 раз)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
man man
Андрей Черепанов (cas@)

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 031
  • ITS
# ccpdadmin -p LBP3000 -o /dev/usb/lp0. "Терминал" пишет, что такой команды -  ccpdadmin - нет. Подскажите пожалуйста, каков смысл этой строки.
Брыкается и строка -  lpadmin -p LBP3000 -m CNCUPSLBP3000CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E - пишет, что не верен "ccp".
Внутри архива с драйверами 2.70 есть файлик README-capt-2.7xUK.txt в котором указано, как правильно подключить принтер:
Цитировать
...
- Если вы используете Debian GNU / Linux 4.0, при регистрации принтера (PPD) в диспетчере очереди печати может возникнуть ошибка файла PPD. Чтобы решить эту проблему, используйте «-P (полный путь к ppd)» вместо «-m», когда вы указываете ppd с помощью командной строки.
Example: /usr/sbin/lpadmin -p LBP5000 -P /usr/share/cups/model/CNCUPSLBP5000CAPTK.ppd -v ccp://localhost:59687 -E
...
Итак с гуглопереводом изучите man
Далее программы(команды) которых нет в альтах есть в пакете: cndrvcups-capt-2.70-1.x86_64.rpm
Это чисто canon-овские тулузы.
Смотрим скачаный пакет:
# rpm -ql -p cndrvcups-capt-2.70-1.x86_64.rpm
/etc/ccpd.conf
/etc/init.d/ccpd
/usr/bin/captdrv
/usr/bin/captfilter
/usr/bin/captmon
/usr/bin/captmon2
/usr/bin/captmoncnab6
/usr/bin/captmoncnab7
/usr/bin/captmoncnab8
/usr/bin/captmoncnab9
/usr/bin/captmoncnaba
/usr/bin/captmoncnabb
/usr/bin/captmoncnabc
/usr/bin/captmoncnabd
/usr/bin/captmoncnabe
/usr/bin/captmoncnabf
/usr/bin/captmoncnabg
/usr/bin/captmoncnac5
/usr/bin/captmoncnac6
/usr/bin/captmoncnac8
/usr/bin/captmoncnac9
/usr/bin/captmoncnaca
/usr/bin/captmoncnacb
/usr/bin/captmoncnacc
/usr/bin/captmoncnacd
/usr/bin/captmonlbp3300
/usr/bin/captmonlbp5000
/usr/lib/libcaiocaptnet.so
/usr/lib/libcaiocaptnet.so.1
/usr/lib/libcaiocaptnet.so.1.0.0
/usr/lib/libcaptfilter.so
/usr/lib/libcaptfilter.so.1
/usr/lib/libcaptfilter.so.1.0.0
/usr/lib/libcnaccm.so
/usr/lib/libcnaccm.so.1
/usr/lib/libcnaccm.so.1.0
/usr/lib/libcncaptnpm.so
/usr/lib/libcncaptnpm.so.2
/usr/lib/libcncaptnpm.so.2.0.1
/usr/lib64/cups/backend/ccp
/usr/lib64/cups/filter/pstocapt
/usr/lib64/cups/filter/pstocapt2
/usr/lib64/cups/filter/pstocapt3
/usr/lib64/libcanoncapt.la
/usr/lib64/libcanoncapt.so
/usr/lib64/libcanoncapt.so.1
/usr/lib64/libcanoncapt.so.1.0.0
/usr/local/bin/captstatusui
/usr/local/lib64/libuictlcapt.la
/usr/local/lib64/libuictlcapt.so
/usr/local/lib64/libuictlcapt.so.1
/usr/local/lib64/libuictlcapt.so.1.0.0
/usr/local/share/locale/de/LC_MESSAGES/libuictlcapt.1.0.mo
/usr/local/share/locale/es/LC_MESSAGES/libuictlcapt.1.0.mo
/usr/local/share/locale/fr/LC_MESSAGES/libuictlcapt.1.0.mo
/usr/local/share/locale/it/LC_MESSAGES/libuictlcapt.1.0.mo
/usr/local/share/locale/ja/LC_MESSAGES/captstatusui.mo
/usr/local/share/locale/ja/LC_MESSAGES/libuictlcapt.1.0.mo
/usr/sbin/ccpd
/usr/sbin/ccpdadmin
/usr/share/caepcm/CnAC076D.DAT
/usr/share/caepcm/CnAC0999.DAT
/usr/share/caepcm/CnAC25C8.DAT
/usr/share/caepcm/CnAC2849.DAT
/usr/share/caepcm/CnAC29A9.DAT
/usr/share/caepcm/CnAC4739.DAT
/usr/share/caepcm/CnAC7AA5.DAT
/usr/share/caepcm/CnACB5C9.DAT
/usr/share/caepcm/CnACB81B.DAT
/usr/share/caepcm/CnACB848.DAT
/usr/share/caepcm/CnACD891.DAT
/usr/share/caepcm/CnACE599.DAT
/usr/share/caepcm/CnACE8E8.DAT
/usr/share/caepcm/CnACF0F1.DAT
/usr/share/caepcm/CnAC_04A.DAT
/usr/share/caepcm/CnAC_09A.DAT
/usr/share/caepcm/CnAC_14A.DAT
/usr/share/caepcm/CnAC_17A.DAT
/usr/share/caepcm/CnAC_20A.DAT
/usr/share/caepcm/CnAC_22A.DAT
/usr/share/caepcm/CnAC_23A.DAT
/usr/share/caepcm/CnAC_31A.DAT
/usr/share/caepcm/CnAC_33A.DAT
/usr/share/captemon/msgtablecnab6.xml
/usr/share/captemon/msgtablecnab7.xml
/usr/share/captemon/msgtablecnab8.xml
/usr/share/captemon/msgtablecnab9.xml
/usr/share/captemon/msgtablecnaba.xml
/usr/share/captemon/msgtablecnabb.xml
/usr/share/captemon/msgtablecnabc.xml
/usr/share/captemon/msgtablecnabd.xml
/usr/share/captemon/msgtablecnabe.xml
/usr/share/captemon/msgtablecnabf.xml
/usr/share/captemon/msgtablecnabg.xml
/usr/share/captemon/msgtablecnac5.xml
/usr/share/captemon/msgtablecnac6.xml
/usr/share/captemon/msgtablecnac8.xml
/usr/share/captemon/msgtablecnac9.xml
/usr/share/captemon/msgtablecnaca.xml
/usr/share/captemon/msgtablecnacb.xml
/usr/share/captemon/msgtablecnacc.xml
/usr/share/captemon/msgtablecnacd.xml
/usr/share/captemon/msgtablelbp3300.xml
/usr/share/captemon/msgtablelbp5000.xml
/usr/share/captfilter/CnABFINK.DAT
/usr/share/captfilter/CnAC8INK.DAT
/usr/share/captfilter/CnAC9INK.DAT
/usr/share/captfilter/CnACAINK.DAT
/usr/share/captfilter/CnACBINK.DAT
/usr/share/captfilter/CnACCINK.DAT
/usr/share/captfilter/CnACDINK.DAT
/usr/share/captmon/msgtable.xml
/usr/share/captmon2/msgtable2.xml
/usr/share/ccpd/CNAB1CL.BIN
/usr/share/ccpd/CNAB7CL.BIN
/usr/share/ccpd/CNABBCL.BIN
/usr/share/ccpd/CNABBCLS.BIN
/usr/share/ccpd/CNABECL.BIN
/usr/share/ccpd/CNABGCL.BIN
/usr/share/ccpd/CNAC4CL.BIN
/usr/share/ccpd/CNAC5CL.BIN
/usr/share/ccpd/CNAC6CL.BIN
/usr/share/ccpd/CNAC8CL.BIN
/usr/share/ccpd/CNAC8CR.BIN
/usr/share/ccpd/CNAC8DH.BIN
/usr/share/ccpd/CNAC9CL.BIN
/usr/share/ccpd/CNAC9CLS.BIN
/usr/share/ccpd/CNAC9CR.BIN
/usr/share/ccpd/CNAC9DH.BIN
/usr/share/ccpd/CNACACL.BIN
/usr/share/ccpd/CNACACR.BIN
/usr/share/ccpd/CNACADH.BIN
/usr/share/ccpd/CNACBCL.BIN
/usr/share/ccpd/CNACCCL.BIN
/usr/share/ccpd/CNACCCR.BIN
/usr/share/ccpd/CNACCDH.BIN
/usr/share/ccpd/CNACDCL.BIN
/usr/share/ccpd/CNACDCR.BIN
/usr/share/ccpd/CNACDDH.BIN
/usr/share/ccpd/cnab6cl.bin
/usr/share/cngplp/CNL112CJ.res
/usr/share/cngplp/CNL112CK.res
/usr/share/cngplp/CNL121CJ.res
/usr/share/cngplp/CNL121CK.res
/usr/share/cngplp/CNL290CK.res
/usr/share/cngplp/CNL300CJ.res
/usr/share/cngplp/CNL300CK.res
/usr/share/cngplp/CNL305CK.res
/usr/share/cngplp/CNL310CJ.res
/usr/share/cngplp/CNL315CK.res
/usr/share/cngplp/CNL320CJ.res
/usr/share/cngplp/CNL320CK.res
/usr/share/cngplp/CNL321CJ.res
/usr/share/cngplp/CNL321CK.res
/usr/share/cngplp/CNL325CK.res
/usr/share/cngplp/CNL330CJ.res
/usr/share/cngplp/CNL330CK.res
/usr/share/cngplp/CNL331CJ.res
/usr/share/cngplp/CNL331CK.res
/usr/share/cngplp/CNL350CJ.res
/usr/share/cngplp/CNL350CK.res
/usr/share/cngplp/CNL360CJ.res
/usr/share/cngplp/CNL500CJ.res
/usr/share/cngplp/CNL500CK.res
/usr/share/cngplp/CNL505CJ.res
/usr/share/cngplp/CNL505CK.res
/usr/share/cngplp/CNL510CJ.res
/usr/share/cngplp/CNL510CK.res
/usr/share/cngplp/CNL530AJ.res
/usr/share/cngplp/CNL530AK.res
/usr/share/cngplp/CNL602CK.res
/usr/share/cngplp/CNL618CK.res
/usr/share/cngplp/CNL618CS.res
/usr/share/cngplp/CNL620CJ.res
/usr/share/cngplp/CNL620CK.res
/usr/share/cngplp/CNL620CS.res
/usr/share/cngplp/CNL630CJ.res
/usr/share/cngplp/CNL630CK.res
/usr/share/cngplp/CNL630CS.res
/usr/share/cngplp/CNL631CK.res
/usr/share/cngplp/CNL634CJ.res
/usr/share/cngplp/CNL63nCK.res
/usr/share/cngplp/CNL701CJ.res
/usr/share/cngplp/CNL701CK.res
/usr/share/cngplp/CNL720CJ.res
/usr/share/cngplp/CNL720CK.res
/usr/share/cngplp/CNL720CS.res
/usr/share/cngplp/CNL721CK.res
/usr/share/cngplp/CNL910CJ.res
/usr/share/cngplp/CNL910CK.res
/usr/share/cngplp/CNL920CJ.res
/usr/share/cngplp/CNL920CK.res
/usr/share/cngplp/cngplp_capt.glade
/usr/share/cngplp/common_capt.res
/usr/share/cngplp/func_config_capt.xml
/usr/share/cups/model/CNCUPSLBP1120CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP1120CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP1210CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP1210CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP2900CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP3000CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP3000CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP3050CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP3100CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP3150CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP3200CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP3200CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP3210CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP3210CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP3250CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP3300CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP3300CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP3310CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP3310CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP3500CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP3500CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP3600CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP5000CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP5000CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP5050CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP5050CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP5100CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP5100CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP5300CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP5300CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP6018CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP6018CAPTS.ppd
/usr/share/cups/model/CNCUPSLBP6020CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP6200CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP6200CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP6200CAPTS.ppd
/usr/share/cups/model/CNCUPSLBP6300CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP6300CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP6300CAPTS.ppd
/usr/share/cups/model/CNCUPSLBP6300nCAPTK.ppd
/usr/share/cups/model/CNCUPSLBP6310CAPTK.ppd
/usr/share/cups/model/CNCUPSLBP6340CAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP7010CCAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP7018CCAPTK.ppd
/usr/share/cups/model/CNCUPSLBP7200CCAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP7200CCAPTK.ppd
/usr/share/cups/model/CNCUPSLBP7200CCAPTS.ppd
/usr/share/cups/model/CNCUPSLBP7210CCAPTK.ppd
/usr/share/cups/model/CNCUPSLBP9100CCAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP9100CCAPTK.ppd
/usr/share/cups/model/CNCUPSLBP9200CCAPTJ.ppd
/usr/share/cups/model/CNCUPSLBP9200CCAPTK.ppd
/usr/share/doc/cndrvcups-capt-2.70
/usr/share/doc/cndrvcups-capt-2.70/LICENSE-EN.txt
/usr/share/doc/cndrvcups-capt-2.70/LICENSE-JP.txt
/usr/share/doc/cndrvcups-capt-2.70/README-capt-2.7xJ.txt
/usr/share/doc/cndrvcups-capt-2.70/README-capt-2.7xUK.txt
/usr/share/doc/cndrvcups-capt-2.70/README-capt-2.7xUS.txt

... о я что-то нашел!

Цитировать
...
/usr/local/share/locale/ja/LC_MESSAGES/captstatusui.mo
/usr/local/share/locale/ja/LC_MESSAGES/libuictlcapt.1.0.mo
/usr/sbin/ccpd
/usr/sbin/ccpdadmin

/usr/share/caepcm/CnAC076D.DAT
/usr/share/caepcm/CnAC0999.DAT
...

значит неустановлен пакет cndrvcups-capt-2.70-1.x86_64.rpm или надо пути проверить или ... подумать разобраться

смотрим второй пакет в каталоге x64 или x32 скачанных дров :
# rpm -ql -p cndrvcups-common-3.20-1.x86_64.rpm


/etc/cngplp/account
/usr/bin/c3pldrv
/usr/include/buflist.h
/usr/include/buftool.h
/usr/lib/libColorGear.so
/usr/lib/libColorGear.so.0
/usr/lib/libColorGear.so.0.0.0
/usr/lib/libColorGearC.so
/usr/lib/libColorGearC.so.0
/usr/lib/libColorGearC.so.0.0.0
/usr/lib/libc3pl.so
/usr/lib/libc3pl.so.0
/usr/lib/libc3pl.so.0.0.1
/usr/lib/libcaepcm.so
/usr/lib/libcaepcm.so.1
/usr/lib/libcaepcm.so.1.0
/usr/lib/libcaiousb.so
/usr/lib/libcaiousb.so.1
/usr/lib/libcaiousb.so.1.0.0
/usr/lib/libcaiowrap.so
/usr/lib/libcaiowrap.so.1
/usr/lib/libcaiowrap.so.1.0.0
/usr/lib/libcanon_slim.so
/usr/lib/libcanon_slim.so.1
/usr/lib/libcanon_slim.so.1.0.0
/usr/lib64/cups/backend/cnusb
/usr/lib64/libbuftool.a
/usr/lib64/libcanonc3pl.so
/usr/lib64/libcanonc3pl.so.1
/usr/lib64/libcanonc3pl.so.1.0.0
/usr/local/bin/cngplp
/usr/local/bin/cnjatool
/usr/local/share/locale/de/LC_MESSAGES/cngplp.mo
/usr/local/share/locale/es/LC_MESSAGES/cngplp.mo
/usr/local/share/locale/fr/LC_MESSAGES/cngplp.mo
/usr/local/share/locale/it/LC_MESSAGES/cngplp.mo
/usr/local/share/locale/ja/LC_MESSAGES/cngplp.mo
/usr/share/caepcm/CANSRGBA.ICC
/usr/share/caepcm/CNC610A.ICC
/usr/share/caepcm/CNC610B.ICC
/usr/share/caepcm/CNC710A.ICC
/usr/share/caepcm/CNC710B.ICC
/usr/share/caepcm/CNC711A.ICC
/usr/share/caepcm/CNC711B.ICC
/usr/share/caepcm/CNC810A.ICC
/usr/share/caepcm/CNC810B.ICC
/usr/share/caepcm/CNC910A.ICC
/usr/share/caepcm/CNC910B.ICC
/usr/share/caepcm/CNCA10A.ICC
/usr/share/caepcm/CNCA10B.ICC
/usr/share/caepcm/CNCB10A.ICC
/usr/share/caepcm/CNCB10B.ICC
/usr/share/caepcm/CNCC10A.ICC
/usr/share/caepcm/CNCC10B.ICC
/usr/share/caepcm/CNCD11A.ICC
/usr/share/caepcm/CNCD11B.ICC
/usr/share/caepcm/CNCE10A.ICC
/usr/share/caepcm/CNCE10B.ICC
/usr/share/caepcm/CNCF10A.ICC
/usr/share/caepcm/CNCF10B.ICC
/usr/share/caepcm/CNCG10A.ICC
/usr/share/caepcm/CNCG10B.ICC
/usr/share/caepcm/CNCH10A.ICC
/usr/share/caepcm/CNCH10B.ICC
/usr/share/caepcm/CNCI10A.ICC
/usr/share/caepcm/CNCI11B.ICC
/usr/share/caepcm/CNCJ10A.ICC
/usr/share/caepcm/CNCJ10B.ICC
/usr/share/caepcm/CNL610A.ICC
/usr/share/caepcm/CNL610B.ICC
/usr/share/caepcm/CNL611A.ICC
/usr/share/caepcm/CNL611B.ICC
/usr/share/caepcm/CNL760A.ICC
/usr/share/caepcm/CNL760B.ICC
/usr/share/caepcm/CNL810A.ICC
/usr/share/caepcm/CNL810B.ICC
/usr/share/caepcm/CNL820A.ICC
/usr/share/caepcm/CNL820B.ICC
/usr/share/caepcm/CNL821A.ICC
/usr/share/caepcm/CNL821B.ICC
/usr/share/caepcm/CNL960A.ICC
/usr/share/caepcm/CNL960B.ICC
/usr/share/caepcm/CNL980A.ICC
/usr/share/caepcm/CNL980B.ICC
/usr/share/caepcm/CNLA60A.ICC
/usr/share/caepcm/CNLA60B.ICC
/usr/share/caepcm/CNLA80A.ICC
/usr/share/caepcm/CNLA80B.ICC
/usr/share/caepcm/CNLB10A.ICC
/usr/share/caepcm/CNLB10B.ICC
/usr/share/caepcm/CNLC10A.ICC
/usr/share/caepcm/CNLC10B.ICC
/usr/share/caepcm/CNLD10A.ICC
/usr/share/caepcm/CNLD10B.ICC
/usr/share/caepcm/CNLD80A.ICC
/usr/share/caepcm/CNLD80B.ICC
/usr/share/caepcm/CNLE60A.ICC
/usr/share/caepcm/CNLE60B.ICC
/usr/share/caepcm/CNLF10A.ICC
/usr/share/caepcm/CNLF10B.ICC
/usr/share/caepcm/CNLG10A.ICC
/usr/share/caepcm/CNLG10B.ICC
/usr/share/caepcm/CNLH60A.ICC
/usr/share/caepcm/CNLH60B.ICC
/usr/share/caepcm/CNLH80A.ICC
/usr/share/caepcm/CNLH80B.ICC
/usr/share/caepcm/CNLI10A.ICC
/usr/share/caepcm/CNLI10B.ICC
/usr/share/caepcm/CNZ005.ICC
/usr/share/caepcm/CNZ006.ICC
/usr/share/caepcm/CNZ007.ICC
/usr/share/caepcm/CNZ008.ICC
/usr/share/caepcm/CNZ055.ICC
/usr/share/cngplp/cngplp.glade
/usr/share/doc/cndrvcups-common-3.20
/usr/share/doc/cndrvcups-common-3.20/LICENSE-DE.txt
/usr/share/doc/cndrvcups-common-3.20/LICENSE-EN.txt
/usr/share/doc/cndrvcups-common-3.20/LICENSE-ES.txt
/usr/share/doc/cndrvcups-common-3.20/LICENSE-FR.txt
/usr/share/doc/cndrvcups-common-3.20/LICENSE-IT.txt
/usr/share/doc/cndrvcups-common-3.20/LICENSE-JP.txt
Всякие профили библиотеки и проч, но я бы глянул:

# rpm -ql -p cndrvcups-common-3.20-1.x86_64.rpm | grep bin

/usr/bin/c3pldrv
/usr/local/bin/cngplp
/usr/local/bin/cnjatool

сам я не знаю что это, но если бы надо было посмотрел бы, может что-то полезное под именем ...tool
а если поставился пакет
...
/usr/share/doc/cndrvcups-common-3.20
...
значит должны работать, после установки выше приведенного пакета, команды типа man ccpd, man ccpdadmin
но точно не скажу

Много ответов в файле /etc/ccpd.conf
Как то приходилось править пути тут  /etc/init.d/ccpd, но все зависит от обновлений и состояний дистрибутива, так как canon под альты не выпускал пакеты, но вот тяжеловесные сетевые МФУ под альтами работают и там уже бывет хорошие инсталяшки попадаются.
« Последнее редактирование: 12.08.2021 11:12:56 от rabochyITs »

Оффлайн jazon

  • Давно тут
  • **
  • Сообщений: 95
Спасибо rabochyITs и Skull  за вашу помощь. Буду рыть дальше. Все эти скрипты очень похожи на скрипты BAT файлов Windows но к сожалению, в отличии от последнего, описание в Линуксе хромает. Но тут надо еще привыкнуть к логике построения скриптов Линукса. Вин. базируется на ДОСе, а у последнего все давно расписано "по полочкам".

Оффлайн jazon

  • Давно тут
  • **
  • Сообщений: 95
Забыл написать, рано обрадовался пакет  cndrvcups-capt-2.70-1.x86_64.rpm не установился до конца. Не смотря на то, что программа установки сообщила об успешной инсталляции.

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 153
Спасибо rabochyITs и Skull  за вашу помощь. Буду рыть дальше. Все эти скрипты очень похожи на скрипты BAT файлов Windows но к сожалению, в отличии от последнего, описание в Линуксе хромает. Но тут надо еще привыкнуть к логике построения скриптов Линукса. Вин. базируется на ДОСе, а у последнего все давно расписано "по полочкам".
В линукс тоже уже давно всё разложено по полочкам, просто эти полочки находились в другой комнате от вас. :)
По скриптам на bash есть хорошее руководство:
Advanced Bash-Scripting Guide - русский перевод, например, здесь: https://www.opennet.ru/docs/RUS/bash_scripting_guide/

Правилом хорошего тона всегда считалось, чтобы у программы была справка.
Попробуйте запустить в консоли с параметром --help
Это применимо не только к чисто консольным программам, но и программам с графическим интерфейсом, запущенных из консоли.
Например, попробуйте запустить в консоли firefox --help или chromium --help - узнаете для себя много нового.
Также обычно есть более подробные руководства, доступные через команду man (как вам подсказывали, например man man - это руководство по самой программе man)
Также обычно при установке пакета может устанавливаться документация в каталог /usr/share/doc/

И этих правил придерживались в юникс-подобных системах ещё до того, как ms dos только учился пешком под стол ходить. :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Спасибо rabochyITs и Skull  за вашу помощь. Буду рыть дальше. Все эти скрипты очень похожи на скрипты BAT файлов Windows но к сожалению, в отличии от последнего, описание в Линуксе хромает. Но тут надо еще привыкнуть к логике построения скриптов Линукса. Вин. базируется на ДОСе, а у последнего все давно расписано "по полочкам".
Что, простите, хромает? Вы читали man bash прежде чем так безапелляционно утверждать?
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Забыл написать, рано обрадовался пакет  cndrvcups-capt-2.70-1.x86_64.rpm не установился до конца. Не смотря на то, что программа установки сообщила об успешной инсталляции.
Это как?
Андрей Черепанов (cas@)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Спасибо rabochyITs и Skull  за вашу помощь. Буду рыть дальше. Все эти скрипты очень похожи на скрипты BAT файлов Windows но к сожалению, в отличии от последнего, описание в Линуксе хромает. Но тут надо еще привыкнуть к логике построения скриптов Линукса. Вин. базируется на ДОСе, а у последнего все давно расписано "по полочкам".

Пакет документации bash в русском переводе существует, но как правило в комплект поставки образов не входит:
rpm -qf /usr/share/man/ru/man1/bash.1.xz
man-pages-ru-extra-0.1-alt7.noarch
# apt-get install man-pages-ru-extra

См. также:
$ apt-cache search man-pages-ru
man-pages-ru - Русские переводы страниц руководства по ОС GNU/*/Linux
man-pages-ru-extra - Дополнительный набор русских переводов страниц руководства по ОС GNU/*/Linux

Но при этом нужно учитывать, что например аналоги команд dos shell DELTREE, FC, FIND, CHKDSK, DIDKCOPY, CLS, COPY, DATE, ERASE, MD, REN, TIME, TYPE и т.д., описанные в документации dos shell, не являются составной частью bash (см. вывод команды enable) и в man bash не описаны. Аналоги этих команд dos shell, описаны их документацией (man <команда>). Разница между man bash и документацией dos shell в том, что докуметация dos shell описывает все dos-команды. И встроенные и транзитные. А man bash описывает только встроенные команды интепретатора bash (см. тот же вывод enable). Эту разницу нужно учитывать. Поскольку bash-скрипты содержат и транзитные команды.
Но фишка в том, что чтобы понять и увидеть эту разницу, нужно достаточно глубокое понимание и bash и dos shell.

Оффлайн jazon

  • Давно тут
  • **
  • Сообщений: 95
   Пока читал только то, что смог найти на форуме и вики. То, что вы порекомендовали начну читать только сегодня. Просто не знал, что есть man и прочие возможности. Сколько мне пришлось людям удалять Линукс и ставить "Винду", только из-за того, что они не могли подсоединить оборудование. Но а мне в ту пору было не до Линукса. Увлекся драйверами, но я не программист - электроник.
Раньше установщик пакетов писал, что есть ошибка (красными буквами). А теперь пишет, что установка прошла успешно. Но не посмотрел как успешно. А смотрел через программу управления пакетами. И увидел, что это не так. Опять rpm установил и просмотрел ход установки, снова написано что нужна библиотека  libpopt.so.0. Хотя файл описывающий эту библиотеку имеется, но насчет самой библиотеки пока не выяснил.
Сейчас буду выяснять с учетом всего того, что вы написали. Большое всем спасибо.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Сейчас буду выяснять с учетом всего того, что вы написали.

Но при этом нужно учитывать и тонкости Unix Shell.
Например команда kill существует сразу в двух ипостасях.

В виде встроеннонной команды интепретатора bash
$ enable -a | grep kill
enable kill

И в виде исполняемого файла
$ file /bin/kill
/bin/kill: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, stripped

Без явного указания пути к файлу, интепретатор bash всегда и без исключений вызывает на выполнение свою встроенную команду.

При этом их функциональность не идентична.
Встроенная команда kill интепретатора bash не умеет выводить таблицу сигналов с информацией о сигналах:

Встроенная команда интепретатора bash:
$ kill --help | grep -A5 Options
    Options:
      -s sig SIG is a signal name
      -n sig SIG is a signal number
      -l list the signal names; if arguments follow `-l' they are
    assumed to be signal numbers for which names should be listed
      -L synonym for -l
$ kill -t
bash: kill: t: недопустимое указание сигнала

Транзитная команда, исполняемый файл:
$ /bin/kill --help | grep -A7 Аргументы
Аргументы, обязательные для длинных параметров, обязательны и для коротких.
  -s, --signal=СИГНАЛ, -СИГНАЛ
              задает имя или номер посылаемого сигнала
  -l, --list  перечисляет имена сигналов или переводит имена в номера и
              наоборот
  -t, --table печатает таблицу с информацией о сигналах
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти
$ /bin/kill -t
 1 HUP      Обрыв терминальной линии
 2 INT      Прерывание
 3 QUIT     Выход
 4 ILL      Недопустимая инструкция
 5 TRAP     Ловушка трассировки/останова
 6 ABRT     Аварийный останов
 7 BUS      Ошибка шины
 8 FPE      Исключение в операции с плавающей точкой
 9 KILL     Убито
10 USR1     Определяемый пользователем сигнал 1
11 SEGV     Ошибка сегментирования
12 USR2     Определяемый пользователем сигнал 2
13 PIPE     Обрыв канала
14 ALRM     Сигнал таймера
15 TERM     Завершено
16 STKFLT   Ошибка стека
17 CHLD     Дочерний процесс завершился
18 CONT     Продолжено
19 STOP     Остановлено (сигнал)
20 TSTP     Остановлено
21 TTIN     Остановлено (ввод с терминала)
22 TTOU     Остановлено (вывод на терминал)
23 URG      Ситуация срочного ввода/вывода
24 XCPU     Превышен лимит процессорного времени
25 XFSZ     Превышен лимит размера файла
26 VTALRM   Виртуальный таймер истек
27 PROF     Профилировочный таймер истек
28 WINCH    Окно изменилось
29 POLL     Возможен ввод/вывод
30 PWR      Сбой питания
31 SYS      Неверный системный вызов
34 RTMIN    Сигнал реального времени 0
35 RTMIN+1  Сигнал реального времени 1
36 RTMIN+2  Сигнал реального времени 2
37 RTMIN+3  Сигнал реального времени 3
38 RTMIN+4  Сигнал реального времени 4
39 RTMIN+5  Сигнал реального времени 5
40 RTMIN+6  Сигнал реального времени 6
41 RTMIN+7  Сигнал реального времени 7
42 RTMIN+8  Сигнал реального времени 8
43 RTMIN+9  Сигнал реального времени 9
44 RTMIN+10 Сигнал реального времени 10
45 RTMIN+11 Сигнал реального времени 11
46 RTMIN+12 Сигнал реального времени 12
47 RTMIN+13 Сигнал реального времени 13
48 RTMIN+14 Сигнал реального времени 14
49 RTMIN+15 Сигнал реального времени 15
50 RTMAX-14 Сигнал реального времени 16
51 RTMAX-13 Сигнал реального времени 17
52 RTMAX-12 Сигнал реального времени 18
53 RTMAX-11 Сигнал реального времени 19
54 RTMAX-10 Сигнал реального времени 20
55 RTMAX-9  Сигнал реального времени 21
56 RTMAX-8  Сигнал реального времени 22
57 RTMAX-7  Сигнал реального времени 23
58 RTMAX-6  Сигнал реального времени 24
59 RTMAX-5  Сигнал реального времени 25
60 RTMAX-4  Сигнал реального времени 26
61 RTMAX-3  Сигнал реального времени 27
62 RTMAX-2  Сигнал реального времени 28
63 RTMAX-1  Сигнал реального времени 29
64 RTMAX    Сигнал реального времени 30

И 'man kill' даст ошибочное представление о том что выведет команда 'kill -t':
$ man kill | grep -A3 ОБЗОР
ОБЗОР
       kill [-s СИГНАЛ | -СИГНАЛ] PID...
       kill -l [СИГНАЛ]...
       kill -t [СИГНАЛ]...
$ man kill | grep -A1 '\-t,'
       -t, --table
              вывести информацию о сигналах в виде таблицы

Такие тонкости тоже нужно учитывать.
При наличии транзитной команды, встроенную команду можно при желании по-умолчанию и отключить через 'enable -n <команда>' в ~/.bashrc. Какой из этих вариантов лучше, сложный вопрос. У всего есть свои плюсы и минусы.

К слову встроенная команда echo интерпретатора bash, совсем не умеет выводить help. А посмотреть там есть на что.
Есть также различия встроенной и транзитной команды pwd, которые в ряде случаев могут быть очень заметны:
# ln -s /home/altlinux /home/altlinux/alt
$ cd alt

Встроенная
$ pwd
/home/altlinux/alt

Транзитная
$ /bin/pwd
/home/altlinux

А различия есть потому, что у встроенной и транзитной, разные умолчания:
$ pwd --help | grep 'By default'
    By default, `pwd' behaves as if `-L' were specified.
$ /bin/pwd --help | grep 'Если параметр не указан'
Если параметр не указан, то предполагается -P.


Эта команда покажет, для каких встроенных команд интерпретатора bash есть альтернативы в виде исполняемых файлов, а для каких альтернатив нет:
enable | cut -f2 -d ' ' | while read line; do which $line; done

Альтернативы встроенным командам интепретатора bash:
$ enable | cut -f2 -d ' ' | while read line; do which $line >> alter-bash-commands.txt &>/dev/null; done
$ grep -v '\[' alter-bash-commands.txt
/bin/echo
/bin/false
/bin/kill
/usr/bin/printf
/bin/pwd
/usr/bin/test
/bin/true
« Последнее редактирование: 13.08.2021 20:26:46 от Speccyfighter »

Оффлайн jazon

  • Давно тут
  • **
  • Сообщений: 95
Весьма благодарен  Speccyfighter учту. Но на постижение необходимо некоторое время. Пока не прощаюсь.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
но я не программист - электроник.

:-) У меня всё ещё хуже. Я слесарь-ремонтник станков. Но всё в наших руках. Не боги горшки обжигают.

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
Все эти скрипты очень похожи на скрипты BAT файлов Windows
Вообще-то наоборот.
"Скрипты BAT файлов Windows" не сказать, чтобы удачная, зато изрядно обкоцанная попытка сделать некое подобие того, что уже было в Unix.

Оффлайн jazon

  • Давно тут
  • **
  • Сообщений: 95
 Александр Ерещенко, вы правы. Но вот в чем беда, в начале 90_х появились первые О.С. DOS, а параллельно им и книжки описывающие эту систему. А вот книг описывающих работу Linux и
вообще Unix систем не было (по крайней мере в моем городе мне не попадались). И так системы Unix остались как бы за бортом для очень многих. Даже в техникуме (93-94_ых годах) об этих системах никто из преподавателей ничего не сообщил. Мы учили все на основе DOS.

Оффлайн jazon

  • Давно тут
  • **
  • Сообщений: 95
 Speccyfighter, так же и у меня. Первые пробы в программировании начались когда еще работал наладчиком ЧПУ_станков. Просто когда уже работал электронщиком и надо было ремонтировать платы станков ЧПУ. Пришлось освоить программирование под DOS и Windows, чтобы тестировать платы с помощью ПК.
Скрипты BAT файлов действительно не очень. Но все, в принципе, только начинается. Поэтому масса недоделок и ошибок. У меня например, пока возился с программами для своего приспособления, то обнаружил много ошибок в API функциях. Мне бы надо было составить список этих функций на бумаги, а в электронном виде все утерял.