Arch linux (виртуализация kvm / qemu) не удалось открыть libiscsi.so.4

Я нашел решение. Я просто недостаточно хорошо понял его синтаксис. Мне просто нужно было отредактировать файл ~/.i3/i3status.sh. Теперь:

#!/bin/sh

/usr/bin/i3status -c $HOME/.i3status.conf | while :
do
    read line
    RAM=`free -kh | grep Mem | awk '{print $3}'`
    TOTR=$(cat /proc/meminfo | grep MemT | sed 's/.*\://g' | sed 's/ *//g' | sed 's/kB//g')
    TOT=$(octave --eval "$TOTR/1024^2" | sed 's/ans = *//g' | sed 's/$/G/g' )

    # Put uptime
    uptime=`uptime | awk '{print $3 " " $4}' | sed 's/,.*//'`
    hour=$(echo $uptime | sed 's/\:.*//g')
    min=$(echo $uptime | sed 's/.*\://g')
    UP="$hour h $min m"

    # Compile C++ CPU prog and run it
    g++ -o cpu.o $HOME/.i3/cpu.cpp
    CPU=$(./cpu.o)

    printf "%s\n" "Up: $UP | CPU: $CPU% | RAM: $RAM/$TOT | $line"
done

Наиболее релевантные строки для uptime находятся между # Put uptime и # Compile C++... и окончательным printf "%s\n" ... команда. Мои полные файлы конфигурации i3 можно найти в этом репозитории.

1
16.05.2016, 12:08
1 ответ

Мне удалось решить проблему после того, как я вручную установил более старую версию (v1.14.0) libiscsi, где qemu смог найти libiscsi.so.4 файл.

Сначала я удалил v1.17.0-2, установленный с помощью pacman. sudo pacman -Rddn libiscsi без деинсталляции зависимости qemu-block-iscsi.

Я клонировал исходный код с github sahlberg/libiscsi и после сборки установил библиотеку с помощью libtool. Я понимаю, что это не лучшее решение, потому что при следующем обновлении qemu мне придется удалить ручную установку и снова использовать пакет pacman.

На данный момент я вижу, что на странице arch linux qemu-page пакет :

Flagged out-of-date on 2016-05-10 Version 2.6.0-1 in testing

код выполнен от имени root:

# git clone folder - libiscsi/

# Making install in lib
# directory 'libiscsi/lib'

 mkdir -p '/usr/lib'
 /bin/sh ../libtool   --mode=install /usr/bin/install -c   libiscsi.la '/usr/lib'

 libtool --finish /usr/lib

----------------------------------------------------------------------

# Libraries have been installed in: /usr/lib

----------------------------------------------------------------------

# Making install in utils
# directory 'libiscsi/utils'

 mkdir -p '/usr/bin'
 /bin/sh ../libtool   --mode=install /usr/bin/install -c iscsi-inq iscsi-ls iscsi-perf iscsi-readcapacity16 iscsi-swp '/usr/bin'

----------------------------------------------------------------------

# directory 'libiscsi/examples'

 mkdir -p '/usr/bin'
 install -c ld_iscsi.so '/usr/bin'

----------------------------------------------------------------------

# directory 'libiscsi/    

 mkdir -p '/usr/include/iscsi'
 install -c -m 644 include/iscsi.h include/scsi-lowlevel.h '/usr/include/iscsi'
 mkdir -p '/usr/lib/pkgconfig'
 install -c -m 644 libiscsi.pc '/usr/lib/pkgconfig'

Я выполнил команды вручную, потому что по умолчанию make install из libiscsi устанавливал либы в /usr/local/bin и /usr/local/lib.

Любые комментарии и предложения приветствуются!

0
28.01.2020, 01:19

Теги

Похожие вопросы