On Wed, Jul 27, 2016 at 12:55:37PM +0300, Victor Wagner wrote: > > Тут при установке очередного секьюрити-апдейта perl возникла проблема > > Cannot write to /usr/bin/cpan: Device or resource busy. ... > 1. Сначала руками поставить perl-base - возникает та же ошибка на > другом исполняемом файле (/usr/bin/perl)
Выглядит так, как будто эти файлы кто-то держит открытыми по mmap(), а инсталлятор пытается открыть их на запись. Для файла /usr/bin/cpan это вообще очень странно, потому что это не бинарник, а перловый скрипт, он не должен mmap-иться при запуске. Покажите выдачу fuser -v /usr/bin/cpan fuser -v /usr/bin/perl Инсталлятор тоже не должен открывать на запись существующие файлы, он должен создавать временный файл, записывать в него новую версию, затем делать атомарный rename(2). Я бы посмотрел результат strace -o /tmp/upd.strace aptitude install perl-... egrep '/usr/bin/(perl|cpan)' /tmp/upd.strace а потом поковырял /tmp/upd.strace на предмет того, из какого подпроцесса выполняются сисколы, вызывающие ошибку. Если ошибку вызывает rename(), то скорее всего в ядре включены какие-то вычурные опции security. -- Eugene Berdnikov

