В процессе работы с двухпанельным менеджером файлов Double Commander (аналог Total Commander) при попытке распаковки файлов из архивов rar выводилось сообщение об ошибке, поясняющей невозможность выполнения запрошенной операции в виду отсутствия файла libunrar.so
🔰 Примечание от 19 мая 2024 г.
Установите libunrar из репозитория (подробности).
Установите libunrar из репозитория (подробности).
Для установки 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 Перезагрузки системы не потребуется.
спасибо
ОтветитьУдалитьИ не забыть про ldconfig :)
ОтветитьУдалить