This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Update problems


On Jan  8 17:28, Steven Monai wrote:
> On 2010/01/08 2:38 PM, Larry Hall (Cygwin) wrote:
> > On 01/08/2010 03:41 PM, Christian Franke wrote:
> >> Larry Hall (Cygwin) wrote:
> >>> On 01/07/2010 09:39 PM, David Gast wrote:
> >>>> There are two problems with updating cygwin.
> >>>>
> >>>> 1. If you run setup.exe from bash, bash cannot be updated
> >>>> because the file is in use.
> >>>
> >>> Sure. This is the reason 'setup.exe' exists. It's a Windows
> >>> "feature" that keeps you from replacing a file that's in use.
> >>> 'setup.exe' was created to provide a native Windows program
> >>> to avoid the problem of something like 'setup.exe' needing to
> >>> update files that are in use by it. If it were possible to
> >>> replace files in use with the same ease as on Linux, say,
> >>> then 'setup.exe' would never be needed since things like
> >>> rpm, yum, and apt, to name a few, could be used directly
> >>> to install and update Cygwin.
> >>
> >> Cygwin 1.7 actually allows to replace an executable which is still in
> >> use:
> >> http://cygwin.com/ml/cygwin/2009-12/msg00423.html
> > 
> > But this is of no help here.  The fact that Cygwin has this feature
> > internally
> > won't make 'setup.exe' use it.  If someone wants to offer a patch for
> > 'setup.exe'
> > to make it be able to be run from a Cygwin shell, I'm sure it will be
> > thoughtfully
> > considered.
> 
> Not to beat a dead hippo here, but if Cygwin allows in-use files to be
> replaced, then what is 'setup.exe' needed for? (Aside from the initial
> bootstrap of Cygwin, of course.) Shouldn't it be possible to have proper
> package management---like dpkg, apt, rpm, yum, etc---from within Cygwin now?

The most pressing problem is the replacement of the cygwin DLL itself.
It's like installing a new kernel in Linux.  However, in Linux you have
to reboot to use the new kernel, while Cygwin is just a DLL.  After the
rename and replace operation, existing processes will use the old DLL
while new processes will use the new DLL.  This is bound to break and
there's no clean way to do it, except to replace the Cygwin DLL while no
other Cygwin process is running.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]