Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: angie_bg в Jul 06, 2014, 11:54



Титла: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: angie_bg в Jul 06, 2014, 11:54
Здравейте, имам .rar файл с уроци за linux, като имената на файловете са (предполагаемо) на руски. Всеки опит за разархивиране, конзолно или GUI, завършва с грешка.
[img=http://picbg.net/pic.php?u=66340ESJW4&i=769505][/img]
Намерих комп с Windows XP, където го разархивирах с 7z и ръчно преименувах файловете. Та въпросът е принципен - можем ли да го „излъжем“ да се разархивира под linux и как?


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: malin в Jul 06, 2014, 13:55
Поради що е [read only] ? И опита ли да го прекръстиш на Цялото-имЕ.rar .


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: neter в Jul 06, 2014, 15:34
Тук ($2) обсъждахме това. Махни пакета rar и си сложи пакета unrar. Няма да можеш да правиш rar архиви с него, но пък няма да имаш текущите проблеми с разархивирането ;)


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: angie_bg в Jul 06, 2014, 18:44
@malin, read-only е, защото така съм го свалил. Промяната на правата и/или името винаги води до (7z):
Цитат
...
Extracting  [Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)/files/Ubuntu Hardened
Extracting  [Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)/files
Extracting  [Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)

Sub items Errors: 71
@neter, с unrar резултатът е:
Цитат
...
Cannot create directory [Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)/files
File name too long
Cannot create directory [Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)
File name too long
Total errors: 92


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: bvbfan в Jul 06, 2014, 19:00
Не съм виждал такъв проблем, това за файлове с имена от Вин е, CP1251? Я дайте един архив да пробвам  ;D Аз такъв проблем не съм виждал никога.


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: malin в Jul 06, 2014, 20:22
А някакви коментари от мястото за сваляне , за сгрешен архив . Използвай графичен раз/архиватор , поне ще се види грешката ( малко по-бавно обаче ).


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: neter в Jul 06, 2014, 21:20
Дай линк за сваляне на този архив, че да му хвърлим едно директно око!

А пробва ли с p7zip и разширението му p7zip-rar?


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: 4096bits в Jul 06, 2014, 23:11
Добре, не можеш да го разархивираш. А можеш ли да го отвориш и да погледнеш, какво има в архива.


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: remotexx в Jul 07, 2014, 21:08
А преименуването без разархивиране дали няма да ги оправи... предполагам само трябва да се уцели правилната кодировка и после с един скрипт (предполагам архива е обемист)

Код
GeSHi (Bash):
  1. rar rn archive.rar filename newfilename

Общо взето "спасението" е следното:
1. трябва да се "отгатне" кодировката
2. да се настрои locale / LANG на същата с която е било архивирано
3. да се разархивира
4. да се възстановят първоначалните locale / LANG etc.

Колега ако е голям архива може ли поне следното да пробвате - да запишете само имената на файловете направо на файл:
<Switches>
log[f][=name] Write names to log file
 а също и да пренасочите un/rar l и un/rar t към текстов файл, да архивирате 3те файла и да ги качите някъде за тестове

- интересно ми е дали колегата е пробвал с пакета unrar който си му идва с дистрибуцията или с онзи който комерсиалния rar си слага? Има разлика.
- така като гледам при опита с unrar който дава грешката е друга т.е. НЕ че не може да разархивира ами че са много дълги имената - може да се пробва следното: -ep1           Exclude base directory from names

- по въпроса за 7зип: да това е единствения (който съм срещал) досега (раз)архиватор който поддържа някаква (макар и ограничена) работа с кодировки различни от зададената от средата - обаче "ядец" само за собствения му формат .. та малко се съмнявам че дори и с разширение за rar ще ги "подкара"

- Това което е най-изнервящо е че вече толкоз години (и проблеми с кодировки) и един не се сети да сложи там разархивиране по индекс напр.
 unrar x -index 1 -saveAs new_name.ext
Което не е чак толкова невъзможно особ. за un/rar при положение че изх. код е достъпен
http://www.rarlab.com/rar/unrarsrc-5.1.6.tar.gz
а и добре обяснен в TechNote.txt който си идва с инсталацията
остава само някой да седне и да напише екстрактор който хваща първия/N-тия файл и го разархивира, но под друго име зададено от командния ред :-)

П.П. Съжалявам, но нямам време за конкретна реализация - само давам идея. Това не нито първия нито ще е последния път когато някой има подобен проблем


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: gat3way в Jul 07, 2014, 23:58
Въобще няма да се учудя, ама въобще. Треа да видиш сорса на unrar, аз такава свинщина няма. Аз лично имах вземане-даване с това докато си играх с трошенето на rar пароли. Огромна свинщина, дело на някой болен мозък, поради което не питая толкова лоши чувства, обаче от друга страна има доста лениво написани части, специално проверките за грешки при декомпресия на моменти са трагично изпълнени. А RAR деархиватора е много по-голяма свинщина отколкото повечето хора предполагат. Например много малко хора знаят че това нещо има една макар орязана, но функционална виртуална машина, която може да изпълнява rar-ски байткод. Основно аритметични операции и много орязани I/O операции. Но пък работи на всяка платформа на която има деархиватор. Малко хора знаят че на практика в RAR архива може да има байткод, който се изпълнява от тази виртуална машина. Освен това, rar архиватора е доста интелигентно говедо и може да взема много различни решения в зависимост от файла, с който работи.

Що се отнася до 7zip, той преизползва абсолютно същия код, така че ще има същите проблеми и ограничения.


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: sharena_sol в Jul 08, 2014, 05:02
Аз пък откакто ползвам wine+winrar нямам никакви проблеми. А до това решение стигнах, защото и на мен ми се е случвало да немога да разархивирам един или друг рар, а не защото съм голям фен на wine.


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: angie_bg в Jul 08, 2014, 19:38
Под Windows (XP и 2003), с WinRAR въпреки, че имената са на „маймуница“ разархивирането е успешно, файловете се отварят и четат. Това е възможно и с чукване върху име на файл, без пълно разархивиране.
Под linux (Ubuntu 12.04) архивът се разглежда, разархивирането не е възможно, при двойно чукване върху някой .pdf от прозореца на File Roller се получава съобщение за грешка:

Цитат
7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,1 CPU)

Processing archive: /media/W1/Book/Linux/Linux (Ubuntu FreeBSD). Уровень 3. Обеспечение безопасности систем сервисов и сетей (2013)/LinuxUbuntuFreeBSD2013.rar

can not open output file /home/angie/.cache/.fr-NK3Bhn/[Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)/files/Одноразовые пароли.pdf

Sub items Errors: 1
Не е възможно и преименуване на файловете в архива.
Линк за сваляне: http://mirvideo.tv/obuchenie/102571-linux-ubuntufreebsd-uroven-3-obespechenie-bezopasnosti-sistem-servisov-i-setey-2013-videokurs.html

Не помня дали съм го свалил от Letitbit.net или от Turbobit.net (възможно е да има разлика във файловете).


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: bvbfan в Jul 08, 2014, 20:44
Сложи някъде архива само, да свалям 2ГБ  ???


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: sharena_sol в Jul 09, 2014, 02:10
Дарагоя ангеличка БьеГье,

Пачему тьи не свалиш УинРарАм екзекютабилной файлом и инсталироваш сноснай и работещай програмчицай без бъговим па билам и тя затворена кодовам и предназначенам для Уиндоус потребителям. Откажитця разчитовам на Отворен кодам и линуксом за безпроблемном работа с всьо и всья. Отворенам кодичку пълно с бъгавам и проблемам отнасно вся прости всекидневни ми задачи и понякога тря да му ТЕГЛИШ ЕДНА МАЙНА И ДА СИ СВЪРШИШ РАБОТАТА.

Па английскаму: Give up, download WinRar and Wine, run it and unrar your rar. Screw linux unrar software, since it is a disaster.


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: neter в Jul 09, 2014, 09:28
Надявам се, че всички, които смело ползват и предлагат WinRAR (и въобще wine, не само за този случай), осъзнават голямата вероятност да се заразят с вируси за Windows, които къде повече, къде по-малко, но в някаква степен да им компрометират системата и/или да им почупят важни файлове, след което да се чудят откъде им е дошло. А .rar архивите са широко използвани и особено податливи за разпространение на вируси.

Разбира се, не отричам тези решения напълно. Ако все пак конкретният архив е направен така, че само WinRAR (или само приложения под Windows среда) да си го прочете коректно, в краен случай може да се прибегне до wine и подходящо приложение в него, но е силно препоръчително това да стане във виртуална среда без споделени папки с реалната система или среда на LiveCD/LiveUSB без монтирани дискове. Може да се ползва що годе безопасно и на основната система, но с добре проверени и познати приложения и файлове, а .rar файлове, свалени от майната си, не спадат към тях ;)


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: gat3way в Jul 09, 2014, 10:56
Тук се получава интересен казус, най-вече за феновете на екстремния социализмус в софтуера, тия същите дето не виждали проблеми с пиратстването щото коденето не било работа, същевременно пламенни, греещи направо борци за отворен, свободен софтуер, което е нещо като безплатен софтуер с идеологически заряд. С други думи, философи, които никога няма да си топнат ръчичките в говната, щото им е под достойнството бидейки идеолози, визионери и дървени философи.

Сега, аз нямам проблем с доброволния труд в името на обществото. Това дето си докарваш черно под ноктите - чистил съм градинки, почиствал съм сняг и т.н неща в името на обществото. Коденето и оправянето на чужди бакии обаче не е работа и следователно държа да ми плащат за това.

Та колко плащате да оправя unrar-а да екстрактва файлове на кирилица? Чакам оферти. Или не не не. Изненадайте community-то, "народа" по социализмуски. Оправете го вие. Нали затворения код превръщал хората от инфантилни деца директно в закостенели чички? Айде сега покажете че не сте нито едно от двете :)

Ама какво безумно поле за тролене се отваря само :)


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: cybercop в Jul 09, 2014, 13:13
Кой каза, че unrar не може да излича файлове на кирилица ?
От години ползвам комбинацията unrar + p7zip-full и нямам никакви проблеми с извличането на каквито и да е rar архиви. За мениджър на архиви предпочитам file-roller, защото xarchiver показва някои слабости при управлението на архиви.


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: neter в Jul 10, 2014, 02:02
Свалих конкретния .rar файл и ето резултатите:
1. Кодировката на символите в имената на файловете вътре се оказа Windows-1251 (cp1251). Разбрах го, като копирах името на един от файловете и го пуснах в Универсалния дешифратор ($2). Когато бъдат прочетени в среда с друга кодировка (а в повечето Linux среди по подразбиране тя е UTF-8) е нормално да излизат с йероглифи;
2. И p7zip, и unrar (не съм пробвал със затворения пакет rar, но той по принцип си има проблеми с нелатинските имена на файлове и папки), успешно разархивират архива в UTF-8 среда, стига да им се каже да не разархивират файловете с целите им пътища (т.е., всички файлове да се разархивират в една папка без заложените подпапки). Но има два проблема с това. Единият е, че файловете, които са с имена на кирилица, се разархивират с йероглифски имена. Другият е, че в архива има файлове с едни и същи имена в различни подпапки, и при разархивиране на всичко в една папка се налага да се преименуват (в процеса по разархивиране се стига до въпроси за замяна или преименуване на вече съществуващи файлове), а и се губи връзката кой от тях за къде се е отнасял. Но този опит за разархивиране показва, че проблемът, чупещ нормалния процес по разархивиране, са само имената на папките и тяхното създаване, а имената на файловете не са проблем (въпреки че, когато в последствие човек реши да ползва тези файлове, ще си има допълнителна занимавка с тях, заради йероглифските им имена; convmv може да помогне за последващото декодиране на имената);

3. РЕШЕНИЕТО. Трябва да се превключи кодировката в конзолата (по-точно, променливата на средата LANG) на съответстваща на кодировката на дадения архив, след което няма проблеми с разархивирането с цели пътища на файловете както с unrar, така и с p7zip, като дори след това файловете и папките се създават с четима кирилица. Казано с команди за случая:
Цитат
export LANG=bg_BG.cp1251 или export LANG=ru_RU.cp1251
unrar x archive.rar или 7z x archive.rar
Текущо наличните кодировки в системата (за да се види налични ли са двете, споменати по-горе) могат да се видят с команда
Цитат
locale -a
като, ако и двете липсват в списъка, човек трябва да си добави някоя от тях, преди да я задава в LANG променливата. В Debian и базираните на него дистрибуции това става с команда с root права
Цитат
dpkg-reconfigure locales
В RedHat-базираните дистрибуции е най-удобно със system-config-language, като преди това се инсталира този пакет, ако не е инсталиран. За други дистрибуции желаещите да си проверят официалния за тях начин в документацията.
Ако човек има намерението след разархивирането на пакета по гореописания начин да продължи да работи в същата конзола е хубаво да си върне стойността на LANG променливата към нейната подразбираща се стойност. За целта може предварително да си погледне каква е стойността ѝ с команда
Цитат
env | grep LANG


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: angie_bg в Jul 10, 2014, 10:44
@neter, благодаря за подробните обяснения!
Проверката показа, че нямам инсталирани локали с кодировка cp1251
Цитат
angie@angie-desktop:~$ locale -a
bg_BG.utf8
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX
ru_RU
ru_RU.iso88595
ru_RU.utf8
ru_UA.utf8
Затова добавих в /var/lib/locales/supported.d/bg реда „bg_BG CP1251“ и
Цитат
angie@angie-desktop:~$ sudo dpkg-reconfigure locales
Generating locales...
  bg_BG.CP1251... done
  bg_BG.UTF-8... up-to-date
  en_AG.UTF-8... up-to-date
  en_AU.UTF-8... up-to-date
  en_BW.UTF-8... up-to-date
  en_CA.UTF-8... up-to-date
  en_DK.UTF-8... up-to-date
  en_GB.UTF-8... up-to-date
  en_HK.UTF-8... up-to-date
  en_IE.UTF-8... up-to-date
  en_IN.UTF-8... up-to-date
  en_NG.UTF-8... up-to-date
  en_NZ.UTF-8... up-to-date
  en_PH.UTF-8... up-to-date
  en_SG.UTF-8... up-to-date
  en_US.UTF-8... up-to-date
  en_ZA.UTF-8... up-to-date
  en_ZM.UTF-8... up-to-date
  en_ZW.UTF-8... up-to-date
  ru_RU.ISO-8859-5... up-to-date
  ru_RU.UTF-8... up-to-date
  ru_UA.UTF-8... up-to-date
Generation complete.

След „export LANG=bg_BG.cp1251“ вместо
Цитат
Extracting from LinuxUbuntuFreeBSD2013.rar

Cannot create [Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)/inux3b_day2.wmv
File name too long
Cannot create [Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)/inux3b_day3.wmv
File name too long
.....
получаваме коректното
Цитат
Extracting from LinuxUbuntuFreeBSD2013.rar

Creating    [Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)  OK
Extracting  [Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)/inux3b_day2.wmv  OK
Extracting  [Специалист] - Linux (Ubuntu)FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей(2013)/inux3b_day3.wmv   ОК
...

 [_]3


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: remotexx в Jul 11, 2014, 15:30
Благодарности за нетер който намери време да свърши това за което на мен не ми остана време (сега сядам ама гледам сте се оправили вече) и спаси вейката от писане на разархиватор.
Направо ви завиждам за свободното време  :'(

..и за финал още малко информация с която реших да поизчакам малко преди да споделя - белким някой ни напише разрахиватора - понеже съм се борил и с по-упорит проблем и ..почти го бях написал тоя unrar:

1. навремето (то май още е така - не намирам тази опция при другите) само 7zip поддържаше разпъване на файл с различна кодировка от указаната при архивиране (но трябва изрично да му се укаже каква да е кодировката на имената вътре в архива при архивиране) т.е. това работи само при архиви в собствения му формат, а при rar - той просто съхранява една 8 битова стойност и при извличане пак му е 8-битова и не му пука обаче не ги escape-ва като ги подава към конзола и тук вече конзолата гърми. Това се наблюдава и при почти всички останали - никой не поддържа указване на кодировка на имената при архивиране. новите версии на rar пазят допълнително и Unicode и/или UTF-8 версия на името на файла - ако е локала е бил не 8-битов обаче

2. Ако напр. кодировката беше по-изчанчена напр. мик7 или др. подобна от времето на ДОС (какъвто беше моя случай преди време) - е НЯМА такъв локал
та съвета ми е да се пробва с някой 8битов който поне няма да гърми - аз така си реших проблема навремето нищо че мик7 е 7 битова (ама почти бях написал разрахиватор)
Също така може да тръгнете и да правите локал т.е. то трябва само една таблица за мап-ване на символите ама за по-мързеливите нека пробват първо с някоя друга налична 8-бит кирилица колкото да ги разархивира без да гърми



Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: tolostoi в Jul 11, 2014, 16:02
... новите версии на rar пазят ...
Баце, на 35 години съм и казано, честно не помня да е излизала нова версия на rar никога  ;D та на колко точно години си?  ;D ;D ;D сори не сдържах. Иначе стандартен проблем, отдавна имам един 7zip който е инсталиран с wine и си разархиварам с него, като се случи така. Предупрежденията за вируси и т. н. не ме касаят толкова, така или иначе си ползвам wine и за други цели.


Титла: Re: RAR файл не може да се разархивира (Ubuntu 12.04)
Публикувано от: remotexx в Jul 11, 2014, 17:39
42 - а-а-а... какъв беше въпроса?

ами така като гледам официалната им страница
http://rarlab.com/
Last updated:  11 June 2014
WinRAR and RAR 5.10 release

или пък тука
http://en.wikipedia.org/wiki/WinRAR
Stable release    5.10 (June 11, 2014; 29 days ago)

хехех - има даже за Андроид
искаш да кажеш че 1993 имаше андроид....

предполагам имаш педвид това (те тогава са излезли са първи път, но не значи че не се обновяват)
http://en.wikipedia.org/wiki/WinRAR#Version_history
There are command-line versions, called "RAR" and "UNRAR" (released since autumn of 1993),

а какво ще кажете за тези напр. - или и тях rar от откакто се помните ще отвори?
- Since version 3.00 (May 2002), the new RAR3 archive format is implemented. The new compressed archives cannot be managed by old versions of WinRAR.
- Since version 5.00 (September 2013) the new RAR5 archive format is implemented. The new compressed archives cannot be managed by old versions of WinRAR