Re: security update
On 01:32:17 Thu 19 Jan , Fedir Gontsa wrote:
> Err http://172.20.80.222 deb/ w32codecs 1:20050412-0.0
> 404 Not Found
> Failed to fetch http://172.20.80.222/debian/deb/w32codecs_1%3a20050412-0.0_i386.deb 404 Not Found
> E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
>
> непосредсвенный УРЛ файла
> http://localhost/debian/deb/w32codecs_1%253a20050412-0.0_i386.deb
>
> тоесть проблема в основном из за '%' в имени файлов... и его различной интерпритацией
> убрал, провед действия создания Packages заново все заработало
> пакеты установились
> вопрос
> как в директории где много файлов скриптом убрать %из имен файлов...
> понимаю что mv, sed но на ум никак не могу сообразить... наверное ночь...
> помогите написать простой скрипт который будет убирать из имени скачаного пакета символ %
>
Дело просто в том, что имена пакетов в /var/cache/apt/archives не совпадают с
именами пакетов. В вашем примере файл в /var/cache/apt/archives называется
w32codecs_1%253a20050412-0.0_i386.deb, имеет версию 1:20050412-0.0, в
действительности там, где вы его брали, он называется w32codecs_20050412-0.0_i386.deb, а apt
при скачивании переименовал его. Соответственно, кодировал ':' как '%3a'.
Из-за этого и ваши беды. Достаточно не просто убрать '%' а раскодировать
'%3a'->':'. Можно сделать на перле:
-------
#!/usr/bin/perl
use URI::Escape;
$|=1;
while (<>) {
chomp;
print uri_unescape($_)."\n";
}
------
или питоне:
------
$ python
Python 2.3.5 (#2, Sep 4 2005, 22:01:42)
[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> urllib.unquote('%3a')
':'
------
--
:Wq
Not an editor command: Wq
Reply to: