LINUX.ORG.RU

Сообщения rakamatafon

 

Gawk. Декодирование строк

Господа, всем шалом. Кто подскажет? Есть файл с кодированными строками вида:

%D0%A0%D1%83%D1%87%D0%BD%D0%BE%D0%B9_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC_%D0%91%D0%A2%D0%98%D0%98%D0%A3%D0%9A_1201_%D0%BF%D0%B8%D0%BA
Вывожу их на экран в человекочитаемом формате. На bash всё умещается в несколько строк, не вопрос. Решил на gawk попробовать и вот что получается:
gawk 'BEGIN { printf %s\n, \xD0\xA0\xD1\x83\xD1\x87 }'
=> Руч
т.е. всё ОК. Но если читать строку в переменную, то не ОК
gawk 'BEGIN { str="%D0%A0%D1%83%D1%87"; gsub("%","\\x",str); printf "%s\n", str }'
=> \xD0\xA0\xD1\x83\xD1\x87 
Как-то можно это починить?

 ,

rakamatafon
()

Модульный bash?

Привет всем. Я видимо что-то пропустил или как? Тут какое-то чтиво попалось, а там про наш любимый bash. Появилась возможность расширяемости? Вот тут /usr/share/doc/bash/examples/loadables/ лежат исходники неких «модулей».

accept.c    csv.c      finfo.c	ln.c	   mkfifo.c  pathchk.c	 README      seq.c	strftime.c  truefalse.c  whoami.c
asort.c     cut.c      head.c	logname.c  mktemp.c  print.c	 realpath.c  setpgid.c	sync.c	    tty.c
basename.c  dirname.c  hello.c	Makefile   mypid.c   printenv.c  rm.c	     sleep.c	tee.c	    uname.c
cat.c	    fdflags.c  id.c	mkdir.c    necho.c   push.c	 rmdir.c     stat.c	template.c  unlink.c
Смотрю accept.c, там
accept - listen for and accept a remote network connection on a given port
Скомпилял оного, смотрю type accept, говорит
accept — это встроенная команда bash
Получается, что скоро и сервер на чистом bash можно сделать и с сокетами работать) Пока не вкурил как всё это работает правда. Но всё же. Кто-то встречал документацию по «расширениям» bash?

UPD. подключить модуль можно так:

enable -f ./accept.so accept

 

rakamatafon
()

Slackel, Virtualbox, trouble

Друзья, прошу помощи. На компе установлен Slackel x64 (Slackware). Живу второй год на нём собственно. И всё, до сегодняшнего дня, было хорошо. Но сегодня понадобилась виндовая софтина. Поставил virtualbox, но завести не удаётся. Дистр обновляется, всё свежее. Ядро 5.10.23. Headers, modules установлены. Что не хватает, не пойму. Есть тут слаководы? Ткните куда копать. Вот что имеем:

me[~]$ virtualbox 
WARNING: The vboxdrv kernel module is not loaded. Either there is no module
         available for the current kernel (5.10.23) or it failed to
         load. Please recompile the kernel module and install it by

           sudo /sbin/vboxconfig

         You will not be able to start VMs until this problem is fixed.
Хорошо, делаем
me[~]$ sudo /sbin/vboxconfig 
Пароль: 
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.  If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
 them. Please see your Linux system's documentation for more information.
Смотрим лог
In file included from /tmp/vbox.0/linux/SUPDrv-linux.c:33:
/tmp/vbox.0/r0drv/linux/the-linux-kernel.h:132:11: фатальная ошибка: linux/smp_lock.h: Нет такого файла или каталога
  132 | # include <linux/smp_lock.h>
      |           ^~~~~~~~~~~~~~~~~~
компиляция прервана.
make[2]: *** [scripts/Makefile.build:279: /tmp/vbox.0/linux/SUPDrv-linux.o] Ошибка 1
make[2]: *** Ожидание завершения заданий…
   ./tools/objtool/objtool orc generate  --module --no-fp --retpoline --uaccess /tmp/vbox.0/SUPDrvGip.o
   ./tools/objtool/objtool orc generate  --module --no-fp --retpoline --uaccess /tmp/vbox.0/SUPDrvTracer.o
/tmp/vbox.0/SUPDrvTracer.o: warning: objtool: .text+0x7: indirect jump found in RETPOLINE build
/tmp/vbox.0/SUPDrvTracer.o: warning: objtool: supdrvTracerProbeFireStub() is missing an ELF size annotation
   ./tools/objtool/objtool orc generate  --module --no-fp --retpoline --uaccess /tmp/vbox.0/SUPDrv.o
make[1]: *** [Makefile:1801: /tmp/vbox.0] Ошибка 2
make: *** [/tmp/vbox.0/Makefile.include.footer:107: vboxdrv] Ошибка 2
Что за smp_lock.h? Где взять? На этом мои полномочия всё)

 ,

rakamatafon
()

RSS подписка на новые темы