[csw-users] a package (but which one) removes a symlink /opt/csw and installs a real directory.

ci ishikawa at yk.rim.or.jp
Wed Mar 29 17:43:10 CEST 2006


Hi,

Thank you for creating this great repository of packages.
I wish there was something like this more than 10 years ago when
I administered a few Sun workstations and servers for
internet gateway and NFS servers.

Anyway, I would like to report a very disturbing event, namely,
installing a package during "pkg-get install mplayer"
removes a symlink /opt/csw (-> ${HOME}/csw } then
creates a real directory /opt/csw and
installs files under this real directory. But as a consequence,
blastware packages installed under ${HOME}/csw via the old
symlink were no longer recognized after this
change.

Sorry, I have only very sketchy information.
But here is the step I took to see this event.


Background:

I had a symlink called

	/opt/csw  -> /home/ishikawa/csw

I made this symlink to my home directory after seeing the
root partition that holds "/" is getting tight in terms of available
space.
CSW packages go into /home/ishikawa/csw by way of /opt/csw symlink.
For example, pkg-get lives under /opt/csw/bin.

Now, my internet connection at this moment is 64kbps ISDN line. (An
optical
fibre connection shared among 16 users is here RSN.)
It is a dial-up line with fixed monthly charge. So I can connect as long
as
I want, but speed is slow.

Anyway, last evening before going to bed, I ran

pkg-get install mplayer

I saw a few packages downloaded and installed before leaving the
computer.
(But I forgot to add -f, nor set up admin file yet.)

What happened was that a few more large packages were installed during
my absence from the console, but at one point, an interaction that
required
user input stopped the pkg-get process.

So in the morning I noticed pkg-get has stopped waiting for user input
and
hit [RETURN], but then it continued to download another package.
By that time, in the morning, the ISDN router's time-out feature had
kicked
in and the connection was lost. So wget called within pkg-get waited for
a while [but I was too sleepy to notice this.], and failed to fetch the
next package. Then pkg-get got clever and tried to download 'catalogue' 
or something thinking that the failure to download the previous package
was due to incorrect inventory instead of network problem.
However, downloading of 'catalogue' was also unsuccessful also due to
the unavailable dial-up connection at the moment.
Then pkg-get failed.

So, by this time, I became aware of the
network problem, and I started the dial-up ISDN connection, and
hit 
	pkg-get install mplayer 
again.
Then the shell prompt said, "pkg-get: not found" or something.
Whoa? pkg-get was nowhere to be found! It was not under /opt/csw/bin/ !?


To make a long story short, I found to my great surprise that
somehow installing one (?) of the pakcages
somehow erased /opt/csw symlink
and instead created a real /opt/csw directory
and happily continued placing the package files
under /opt/csw (real directory).
After a moment of panic, I looked for ${HOME}/csw and I found
it is still there and holding the previously installed files
intact there.
For example, pkg-get is still available ${HOME}/csw/bin/pkg-get.

This is very strange.

I am not sure which package is to blame.
All I can say is that it is a package (or packages?) that
are required by "mplayer" package that removed the symlink
/opt/csw and recreated a real directory under the same name.

I suspct that the checking for the existence of /opt/csw directory
is not quite uniform across packages, and one package at least
somehow mistook the presence of a symlink /opt/csw and
deletes it forcibly and creates a real directory?

After this discovery, I recreated /opt/csw symlink 
and re-ran the rest of pkg-get install mplayer and
it seemed to run fine.

e.g.
	mv /opt/csw /opt/csw.new
	ln -s ${HOME}/csw /opt/csw
	cd /opt/csw.new
	cp -pr * /opt/csw
	cd /tmp
	rmdir /opt/csw.new

The above steps merged the previously installed files
under ${HOME}/csw and the package files installed
under real directory /opt/csw into
${HOME}/csw via symbolic link /opt/csw.

I am not sure if I can track down which pakcage is to blame.

In any case, I report this problem to alert package maintainers.

TIA.

CI






More information about the users mailing list