вторник, 24 октября 2017 г.

Double Commander: отсутствует файл libunrar.so

В процессе работы с двухпанельным менеджером файлов Double Commander (аналог Total Commander) при попытке распаковки файлов из архивов rar выводилось сообщение об ошибке, поясняющей невозможность выполнения запрошенной операции в виду отсутствия файла libunrar.so

Для установки Double Commander выполните команды в теминале:

sudo add-apt-repository ppa:alexx2000/doublecmd && sudo apt update

sudo apt install doublecmd-gtk (для GNOME и XFCE и, вероятно, Cinnamon и MATE)

sudo apt install doublecmd-qt (для KDE)


Решение проблемы осуществляется вариантами:

1) компилирование libunrar.so из исходников WinRAR;

2) получение готового файла из репозитория OpenSUSE:

3) извлечение файла из Portable package Double Commander.

Так как второй вариант был найден позднее, то далее будут описаны первый и третий варианты. Имевшийся на момент написания этой заметки файл libunrar_5.3.11-0_amd64.deb для Ubuntu 16.04 доступен по этой ссылке.

1-й вариант. Перейдите на сайт http://www.rarlab.com/rar_add.htm и скачайте архив unrar...tar.gz, расположенный по ссылке UnRAR source.

Содержимое архива составляет каталог unrar. Распакуйте его в свой домашний каталог.

Далее все команды будут вводиться в терминале.

Установите отсутствующие компоненты, необходимые для компиляции libunrar.so:   sudo apt-get install build-essential

Перейдите в в каталог с исходниками:

cd /home/Ваш_домашний_каталог/unrar

Выполните команду   make -f makefile lib

В окне терминала начнёт появляться много строк. Дождитесь завершения этого процесса. Ниже привожу последние строки в окне моего терминала:

c++  -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP -DRARDLL -c ui.cpp
c++  -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP -DRARDLL -c filestr.cpp
c++  -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP -DRARDLL -c scantree.cpp
c++  -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP -DRARDLL -c dll.cpp
c++  -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP -DRARDLL -c qopen.cpp
c++ -shared -o libunrar.so -pthread rar.o strlist.o strfn.o pathfn.o smallfn.o global.o file.o filefn.o filcreat.o archive.o arcread.o unicode.o system.o isnt.o crypt.o crc.o rawread.o encname.o resource.o match.o timefn.o rdwrfn.o consio.o options.o errhnd.o rarvm.o secpassword.o rijndael.o getbits.o sha1.o sha256.o blake2s.o hash.o extinfo.o extract.o volume.o list.o find.o unpack.o headers.o threadpool.o rs16.o cmddata.o ui.o filestr.o scantree.o dll.o qopen.o
ar rcs libunrar.a rar.o strlist.o strfn.o pathfn.o smallfn.o global.o file.o filefn.o filcreat.o archive.o arcread.o unicode.o system.o isnt.o crypt.o crc.o rawread.o encname.o resource.o match.o timefn.o rdwrfn.o consio.o options.o errhnd.o rarvm.o secpassword.o rijndael.o getbits.o sha1.o sha256.o blake2s.o hash.o extinfo.o extract.o volume.o list.o find.o unpack.o headers.o threadpool.o rs16.o cmddata.o ui.o filestr.o scantree.o dll.o qopen.o
cemea@H67 ~/unrar $


Теперь выполните команду  sudo make install-lib

Результатом выполнения у меня были строки:

install libunrar.so /usr/lib
install libunrar.a /usr/lib
cemea@H67 ~/unrar $

Запустите Double Commander и попробуйте распаковать какой-либо архив rar.

3-й вариант является самым простым у удобным "до безобразия".

Перейдите на сайт Double Commader и в разделе загрузок найдите секцию Portable packages (most modern distro). Скачайте архив tar.gz, соответствующий разрядности Вашей системы. В составе архива Вы обнаружите файл libunrar.so


Поместите данный файл в каталог  /lib  Перезагрузки системы не потребуется.

1 комментарий: