* [devel] cpio: rename failed - Is a directory
@ 2007-01-29 21:54 Alexey Tourbin
2007-01-29 22:06 ` Michael Shigorin
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Alexey Tourbin @ 2007-01-29 21:54 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 436 bytes --]
В пакете R-base я переместил каталог /usr/lib/R/doc в
/usr/share/doc/R-2.4, а на месте старого каталога оставил симлинк.
Теперь при обновлении выскакивает ошибка cpio:
error: unpacking of archive failed on file /usr/lib/R/doc: cpio: rename failed - Is a directory
То есть это некая типовая ситуация: переместил каталог, поставил симлинк
для совместимости. Обновление нормально работать не будет. Как быть в
такой ситуации?
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] cpio: rename failed - Is a directory
2007-01-29 21:54 [devel] cpio: rename failed - Is a directory Alexey Tourbin
@ 2007-01-29 22:06 ` Michael Shigorin
2007-01-29 23:03 ` Alexey I. Froloff
2007-01-29 23:02 ` Alexey I. Froloff
2007-01-30 18:55 ` [devel] R-base upgrade (was: cpio...) Alexey Tourbin
2 siblings, 1 reply; 13+ messages in thread
From: Michael Shigorin @ 2007-01-29 22:06 UTC (permalink / raw)
To: devel
On Tue, Jan 30, 2007 at 12:54:59AM +0300, Alexey Tourbin wrote:
> error: unpacking of archive failed on file /usr/lib/R/doc: cpio: rename failed - Is a directory
> То есть это некая типовая ситуация: переместил каталог,
> поставил симлинк для совместимости. Обновление нормально
> работать не будет. Как быть в такой ситуации?
/usr/share/doc/rpm-4.0.4/manual/triggers?
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] cpio: rename failed - Is a directory
2007-01-29 21:54 [devel] cpio: rename failed - Is a directory Alexey Tourbin
2007-01-29 22:06 ` Michael Shigorin
@ 2007-01-29 23:02 ` Alexey I. Froloff
2007-01-30 18:55 ` [devel] R-base upgrade (was: cpio...) Alexey Tourbin
2 siblings, 0 replies; 13+ messages in thread
From: Alexey I. Froloff @ 2007-01-29 23:02 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 269 bytes --]
* Alexey Tourbin <at@> [070130 01:03]:
> То есть это некая типовая ситуация: переместил каталог, поставил симлинк
> для совместимости. Обновление нормально работать не будет. Как быть в
> такой ситуации?
%pre. См. напр. vim-common.
--
Regards,
Sir Raorn.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* [devel] R-base upgrade (was: cpio...)
2007-01-29 21:54 [devel] cpio: rename failed - Is a directory Alexey Tourbin
2007-01-29 22:06 ` Michael Shigorin
2007-01-29 23:02 ` Alexey I. Froloff
@ 2007-01-30 18:55 ` Alexey Tourbin
2007-01-30 19:00 ` Dmitry V. Levin
2 siblings, 1 reply; 13+ messages in thread
From: Alexey Tourbin @ 2007-01-30 18:55 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 1970 bytes --]
On Tue, Jan 30, 2007 at 12:54:59AM +0300, Alexey Tourbin wrote:
> В пакете R-base я переместил каталог /usr/lib/R/doc в
> /usr/share/doc/R-2.4, а на месте старого каталога оставил симлинк.
> Теперь при обновлении выскакивает ошибка cpio:
>
> error: unpacking of archive failed on file /usr/lib/R/doc: cpio: rename failed - Is a directory
>
> То есть это некая типовая ситуация: переместил каталог, поставил симлинк
> для совместимости. Обновление нормально работать не будет. Как быть в
> такой ситуации?
Новый прикол.
$ sudo apt-get remove R-base
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
R-base
...
Done.
$ sudo rm -rfv /usr/lib/R /etc/R
removed directory: `/usr/lib/R'
$ sudo apt-get install R-base=2.3.1
Reading Package Lists... Done
Building Dependency Tree... Done
Selected version 2.3.1-alt1 for R-base
The following NEW packages will be installed:
R-base
...
Done.
$ sudo apt-get install R-base=2.4.1
Reading Package Lists... Done
Building Dependency Tree... Done
Selected version 2.4.1-alt1 for R-base
The following packages will be upgraded
R-base
....
Done.
$ rpm -Vv R-base
missing /etc/R/Makeconf
missing /etc/R/Renviron
missing /etc/R/ldpaths
missing /etc/R/repositories
missing /usr/share/doc/R-2.4/AUTHORS
missing /usr/share/doc/R-2.4/COPYRIGHTS
missing /usr/share/doc/R-2.4/CRAN_mirrors.csv
missing /usr/share/doc/R-2.4/KEYWORDS
missing /usr/share/doc/R-2.4/KEYWORDS.db
missing /usr/share/doc/R-2.4/NEWS
missing /usr/share/doc/R-2.4/THANKS
$ R
/usr/bin/R: line 164: /usr/lib/R/etc/ldpaths: No such file or directory
$
То есть при обновлении с сизифовской сборки то текущей (в git.alt)
пропадают некоторые конфигурационные и документационные файлы.
Куда пропадают эти файлы?
При установке, а не обновлении, такой проблемы не возникает.
Прошу о помощи -- не могу понять, в чем дело. :(
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] R-base upgrade (was: cpio...)
2007-01-30 18:55 ` [devel] R-base upgrade (was: cpio...) Alexey Tourbin
@ 2007-01-30 19:00 ` Dmitry V. Levin
2007-01-30 19:15 ` Alexey Tourbin
0 siblings, 1 reply; 13+ messages in thread
From: Dmitry V. Levin @ 2007-01-30 19:00 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 924 bytes --]
On Tue, Jan 30, 2007 at 09:55:06PM +0300, Alexey Tourbin wrote:
> On Tue, Jan 30, 2007 at 12:54:59AM +0300, Alexey Tourbin wrote:
> > В пакете R-base я переместил каталог /usr/lib/R/doc в
> > /usr/share/doc/R-2.4, а на месте старого каталога оставил симлинк.
> > Теперь при обновлении выскакивает ошибка cpio:
> >
> > error: unpacking of archive failed on file /usr/lib/R/doc: cpio: rename failed - Is a directory
> >
> > То есть это некая типовая ситуация: переместил каталог, поставил симлинк
> > для совместимости. Обновление нормально работать не будет. Как быть в
> > такой ситуации?
>
> Новый прикол.
Не надо превращать каталог с файлами в симлинк на каталог с файлами.
Если очень хочется это сделать, то необходимо обеспечить отсутствие этой
ссылки до тех пор пока не будет удалена старая сборка пакета.
Иначе при обновлении пропадут файлы, которые присутствуют в обеих сборках.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] R-base upgrade (was: cpio...)
2007-01-30 19:00 ` Dmitry V. Levin
@ 2007-01-30 19:15 ` Alexey Tourbin
2007-01-30 19:22 ` Dmitry V. Levin
0 siblings, 1 reply; 13+ messages in thread
From: Alexey Tourbin @ 2007-01-30 19:15 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1333 bytes --]
On Tue, Jan 30, 2007 at 10:00:03PM +0300, Dmitry V. Levin wrote:
> > > То есть это некая типовая ситуация: переместил каталог, поставил симлинк
> > > для совместимости. Обновление нормально работать не будет. Как быть в
> > > такой ситуации?
> >
> > Новый прикол.
>
> Не надо превращать каталог с файлами в симлинк на каталог с файлами.
> Если очень хочется это сделать, то необходимо обеспечить отсутствие этой
> ссылки до тех пор пока не будет удалена старая сборка пакета.
> Иначе при обновлении пропадут файлы, которые присутствуют в обеих сборках.
Кажется я начинаю понимать, в чем здесь может быть дело.
То есть в соответствии с со стадиями обновления, описанными здесь:
/usr/share/doc/rpm-4.0.4/manual/triggers
дело обстоит так:
1) rpm сначала распаковывает все новые файлы;
2) чрезе некоторое время после этого rpm удаляет все старые файлы.
Если рассмотреть это на уровне системных вызовов, то происходит вот что:
1)
mkdir /etc/R
unlink /etc/R/ldpaths -- like install(1)
open /etc/R/ldpaths O_WRONLY
...
symlink ../../etc/R /usr/lib/R/etc
2)
unlink /usr/lib/R/etc/ldpaths
Вся трудность в последнем unlink'е. Симлинк уже стоит и
/usr/lib/R/etc/ldpaths фактически разрешается в /etc/R/ldpahts.
Следовательно, будет удален новый файл /etc/R/ldpahts.
Что-то мысли мои смутились.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] R-base upgrade (was: cpio...)
2007-01-30 19:15 ` Alexey Tourbin
@ 2007-01-30 19:22 ` Dmitry V. Levin
2007-01-30 20:01 ` Alexey Tourbin
0 siblings, 1 reply; 13+ messages in thread
From: Dmitry V. Levin @ 2007-01-30 19:22 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 890 bytes --]
On Tue, Jan 30, 2007 at 10:15:29PM +0300, Alexey Tourbin wrote:
[...]
> Кажется я начинаю понимать, в чем здесь может быть дело.
> То есть в соответствии с со стадиями обновления, описанными здесь:
> /usr/share/doc/rpm-4.0.4/manual/triggers
> дело обстоит так:
> 1) rpm сначала распаковывает все новые файлы;
> 2) чрезе некоторое время после этого rpm удаляет все старые файлы.
>
> Если рассмотреть это на уровне системных вызовов, то происходит вот что:
> 1)
> mkdir /etc/R
> unlink /etc/R/ldpaths -- like install(1)
> open /etc/R/ldpaths O_WRONLY
> ...
> symlink ../../etc/R /usr/lib/R/etc
> 2)
> unlink /usr/lib/R/etc/ldpaths
>
> Вся трудность в последнем unlink'е. Симлинк уже стоит и
> /usr/lib/R/etc/ldpaths фактически разрешается в /etc/R/ldpahts.
> Следовательно, будет удален новый файл /etc/R/ldpahts.
Именно так оно и происходит.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] R-base upgrade (was: cpio...)
2007-01-30 19:22 ` Dmitry V. Levin
@ 2007-01-30 20:01 ` Alexey Tourbin
2007-01-30 20:04 ` Alexey Tourbin
2007-01-30 20:10 ` Alexey Tourbin
0 siblings, 2 replies; 13+ messages in thread
From: Alexey Tourbin @ 2007-01-30 20:01 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 1578 bytes --]
On Tue, Jan 30, 2007 at 10:22:21PM +0300, Dmitry V. Levin wrote:
> On Tue, Jan 30, 2007 at 10:15:29PM +0300, Alexey Tourbin wrote:
> [...]
> > Кажется я начинаю понимать, в чем здесь может быть дело.
> > То есть в соответствии с со стадиями обновления, описанными здесь:
> > /usr/share/doc/rpm-4.0.4/manual/triggers
> > дело обстоит так:
> > 1) rpm сначала распаковывает все новые файлы;
> > 2) чрезе некоторое время после этого rpm удаляет все старые файлы.
> >
> > Если рассмотреть это на уровне системных вызовов, то происходит вот что:
> > 1)
> > mkdir /etc/R
> > unlink /etc/R/ldpaths -- like install(1)
> > open /etc/R/ldpaths O_WRONLY
> > ...
> > symlink ../../etc/R /usr/lib/R/etc
> > 2)
> > unlink /usr/lib/R/etc/ldpaths
> >
> > Вся трудность в последнем unlink'е. Симлинк уже стоит и
> > /usr/lib/R/etc/ldpaths фактически разрешается в /etc/R/ldpahts.
> > Следовательно, будет удален новый файл /etc/R/ldpahts.
>
> Именно так оно и происходит.
По-моему эта проблема решаема на уровне rpm. При создании новых файлов
нужно запоминать st_dev+st_ino вновь созданных файлов. При удалении
старых файлов нужно проверять, не совпадает ли st_dev+st_ino удаляемого
файла с каким-либо новым файлом. В общем кто-то когда-то плохо подумал,
а теперь всё, поздняк метаться.
Фактически можно придумать зловредный пакет pkg и две его версии, таких
что при обновлении pkg-v1 -> pkg-v2 сносится ЧТО УГОДНО. Напр.
pkg-v1
%files
/usr/lib/pkg1/bin/cat
pkg2-v2
%pre
rm -rf /usr/lib/pkg1/bin
%files
/usr/lib/pkg1/bin -> /bin
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] R-base upgrade (was: cpio...)
2007-01-30 20:01 ` Alexey Tourbin
@ 2007-01-30 20:04 ` Alexey Tourbin
2007-01-30 20:10 ` Alexey Tourbin
1 sibling, 0 replies; 13+ messages in thread
From: Alexey Tourbin @ 2007-01-30 20:04 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 560 bytes --]
On Tue, Jan 30, 2007 at 11:01:21PM +0300, Alexey Tourbin wrote:
> Фактически можно придумать зловредный пакет pkg и две его версии, таких
> что при обновлении pkg-v1 -> pkg-v2 сносится ЧТО УГОДНО. Напр.
>
> pkg-v1
> %files
> /usr/lib/pkg1/bin/cat
>
> pkg2-v2
> %pre
> rm -rf /usr/lib/pkg1/bin
> %files
> /usr/lib/pkg1/bin -> /bin
Прошу заметить, что в этом раскладе не видно злого умысла.
Чувак просто хочет использовать системный /bin/cat вместо
/usr/lib/pkg1/bin/cat. Но в результате системный /bin/cat
удаляется. What a blunder!
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] R-base upgrade (was: cpio...)
2007-01-30 20:01 ` Alexey Tourbin
2007-01-30 20:04 ` Alexey Tourbin
@ 2007-01-30 20:10 ` Alexey Tourbin
2007-01-30 20:23 ` Michael Shigorin
1 sibling, 1 reply; 13+ messages in thread
From: Alexey Tourbin @ 2007-01-30 20:10 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 888 bytes --]
On Tue, Jan 30, 2007 at 11:01:21PM +0300, Alexey Tourbin wrote:
> По-моему эта проблема решаема на уровне rpm. При создании новых файлов
> нужно запоминать st_dev+st_ino вновь созданных файлов. При удалении
> старых файлов нужно проверять, не совпадает ли st_dev+st_ino удаляемого
> файла с каким-либо новым файлом. В общем кто-то когда-то плохо подумал,
> а теперь всё, поздняк метаться.
>
> Фактически можно придумать зловредный пакет pkg и две его версии, таких
> что при обновлении pkg-v1 -> pkg-v2 сносится ЧТО УГОДНО. Напр.
>
> pkg-v1
> %files
> /usr/lib/pkg1/bin/cat
>
> pkg2-v2
> %pre
> rm -rf /usr/lib/pkg1/bin
> %files
> /usr/lib/pkg1/bin -> /bin
Впрочем, зловредный pkg-v2 можно придумать гораздо проще:
%pre
rm -f /bin/cat
Тем не менее, ужасный blunder в алогритме rpm, который своими же руками
позволят снести ЧТО УГОДНО, сохраняется.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] R-base upgrade (was: cpio...)
2007-01-30 20:10 ` Alexey Tourbin
@ 2007-01-30 20:23 ` Michael Shigorin
2007-01-30 20:35 ` Alexey Tourbin
0 siblings, 1 reply; 13+ messages in thread
From: Michael Shigorin @ 2007-01-30 20:23 UTC (permalink / raw)
To: devel
On Tue, Jan 30, 2007 at 11:10:24PM +0300, Alexey Tourbin wrote:
> > Фактически можно придумать зловредный пакет pkg и две его версии, таких
> > что при обновлении pkg-v1 -> pkg-v2 сносится ЧТО УГОДНО. Напр.
> Впрочем, зловредный pkg-v2 можно придумать гораздо проще:
> %pre
> rm -f /bin/cat
Так это ж слишком очевидно. :)
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] R-base upgrade (was: cpio...)
2007-01-30 20:23 ` Michael Shigorin
@ 2007-01-30 20:35 ` Alexey Tourbin
0 siblings, 0 replies; 13+ messages in thread
From: Alexey Tourbin @ 2007-01-30 20:35 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 839 bytes --]
On Tue, Jan 30, 2007 at 10:23:02PM +0200, Michael Shigorin wrote:
> On Tue, Jan 30, 2007 at 11:10:24PM +0300, Alexey Tourbin wrote:
> > > Фактически можно придумать зловредный пакет pkg и две его версии, таких
> > > что при обновлении pkg-v1 -> pkg-v2 сносится ЧТО УГОДНО. Напр.
> > Впрочем, зловредный pkg-v2 можно придумать гораздо проще:
> > %pre
> > rm -f /bin/cat
>
> Так это ж слишком очевидно. :)
Ну понятно. Старый принцип гласил GIGO -- garbage in garbage out;
т.е. некоторый алгоритм мог давать произвольные последствия/результаты
для сомнительного ввода. Новые подходы к корректности программ говорят,
что хороший алгоритм не должен выполнять ПРОИЗВОЛЬНЫЕ действия;
напротив, лишь некоторый набор заведомо корректных действий В СМЫСЛЕ
ИНТЕПРЕТАЦИИ; поскольку СУЩЕСТВУЕТ МОДЕЛЬ и т.п... Ой, я уже гоню. :)
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2007-01-30 20:35 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-01-29 21:54 [devel] cpio: rename failed - Is a directory Alexey Tourbin
2007-01-29 22:06 ` Michael Shigorin
2007-01-29 23:03 ` Alexey I. Froloff
2007-01-29 23:02 ` Alexey I. Froloff
2007-01-30 18:55 ` [devel] R-base upgrade (was: cpio...) Alexey Tourbin
2007-01-30 19:00 ` Dmitry V. Levin
2007-01-30 19:15 ` Alexey Tourbin
2007-01-30 19:22 ` Dmitry V. Levin
2007-01-30 20:01 ` Alexey Tourbin
2007-01-30 20:04 ` Alexey Tourbin
2007-01-30 20:10 ` Alexey Tourbin
2007-01-30 20:23 ` Michael Shigorin
2007-01-30 20:35 ` Alexey Tourbin
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git