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: Why is setup.exe so difficult? Am I missing something?


Matt England wrote:
<snip>


The biggest question: why do myself and everyone else in my software development group that I manage (as well as everyone else with whom I've spoken over the years regarding cygwin) find cygwin's setup.exe so perplexing?

I used to find it confusing, and difficult to use.. Then the way of addressing the views was changed a bit, and you were given the ability to maximise the setup window.


And why does everyone else in this community for which I write (cygwin@cygwin.com) seem to have no problems with it? Or maybe they do?

Perhaps we're all using a newer version?



Here are some example problems scenarios:


* Installing/updating a subversion package

I want to install or update a subversion package for my cygwin system. I tried for about 15 minutes to figure out how to do this (and get a specific rev of svn--1.2.3-1) to no avail. The organization of the modes and views and lists of setup.exe to be are extremely unintuitive--I've never understood them, and I think I've been using cygwin for about 5 years now. It's not like I'm a rookie.

This one is easy. Here are some steps for it. Apologies if it reads like an idiots guide, I spend too much time around (l)users, who most definitely need things as simplistic as possible, so it's become a habit :(

1) Run setup
2) Select Install from Internet (or you could Download without
Installing, so as to mirror the packages)
3) Pick your mirror - i use http://www.mirror.ac.uk
4) Click View once, to select Full view. Make sure Curr is selected.
5) Scroll down to the packages beginning with s, and click on the Skip
by subversion once, it will select 1.2.3-1.
6) Click View again to select Partial - verify that subversion is in the
list.
7) Click Next until done.

Subversion is now installed.


* Installing a full cygwin set


The only way I get by with cygwin is to always attempt a "full" download and hope for the best. However, a full download of cygwin, at least with our controlled setup.exe, is NOT a full download! We had to write a user-installation page just to make sure the installation user had to manually select all the packages in the supposed "full" cygwin install (about 3-4 packages were missing in the list). What gives?

How are you telling setup to select all packages? After getting the mirror list, are you clicking on the 'Default' by All, so that it reads Install? If so, then yes, this does leave some packages not downloaded. I've just checked this myself. This may be a bug, or it may be because they duplicate other packages or conflict with them? I couldn't say. If you need them though, after selecting Install, click View 4 times - it should now read Not Installed. You will now be able to change each of these packages to Install.


* Duplication a cygwin environment from machine to machine


This is critical for development consistency. We had to download the entire package set,


Best way to do this is to maintain a local mirror - I think there may be some documentation on how to do this.. Otherwise, download all the packages you need for your environment using setup (Download without Installing), and then always use "Install from Local Directory" to install. This will probably require you to map drives, or at least have readily accessible network shares, but should solve the problem.

* Figure out which things to install and which ones to not

This is the worst thing of them all. I always feel like an idiot whenever I step into setup.exe

And in this, you're no different from anyone else that doesn't know what all the packages do. I've been using cygwin and linux for around 6 years now, and I still don't know what half of the things are for - especially when it comes to the dependancies.. I still hope that some day someone will port apt-get to cygwin, along with the apt-utils.. I'd assume it's possible, as we already have the packages in a list format (setup.bz2), but I don't know nearly enough to attempt this myself.. (hint hint folks ;)



I could probably provide a longer list with much more detail. However, empathy for these issues I suspect are rather binary: one either completely understands what I'm talking about, or they think that I simply haven't read the docs well enough and that they can use setup.exe just fine.

Yes, I'm sure you'll see both cases in the responses - hopefully this one is helpful to you :)


There's also the "setup.exe is an extremely powerful and flexible" utility argument. I'll grant anyone this argument; it seems rather capable...I guess...** if someone can figure out how to use it. ** I see flexibility coming at the price of understanding.

Given what it does, it is powerful, but not as flexible as it might be. To be honest, the limitations are imposed by package management as a whole, at least to some extent.. Or that's my opinion anyway.



I have attempted to read several different user guides on the setup.exe installation process. None of them I have seen thus far address the questions and problems I have with setup.exe. But let's say there is a document out there that explains all the setup.exe nuances and helps a user like me to "see the light." Why does one require such a document (and a side note: why has it been so hard for me to find?)? Why not simply make a more-intuitive flavor of the user experience for installation and upgrades?

How do you define categories that match what every user needs? You can't. It's a literal impossibility, as no two users will ever want the same. It forces you to either give users limited choice, thus giving them packages they have no interest in, or absolutely do not want (see debian's tasksel for an example), or to give them complete choice (see dselect, also from debian). setup.exe takes the latter route, though is vastly more presentable (for now) than dselect. Obviously, as the number of packages grows, something may need to be done to further organise them, but it works reasonably well just now.

<snip>

I'm not trying to impress someone with my "resume." I'm simply trying to convey the fact that 1) I think I am a reasonably-capable technologist, and 2) I FIND cygwin's setup.exe *THE* MOST DIFFICULT-TO-USE PROGRAM IN ALL THE SOFTWARE I CURRENTLY USE TODAY.

Have you ever played with dselect? Or aptitude? :P (I find dselect relatively easy now, I must say, but aptitude drives me nuts).


It's disappointing, because beyond the install-and-update process, I generally find cygwin a pleasure to use. First of all, it's free of charge; further, the software-module updates are fantastics (I subscribe to the package-update-notification list, and like how the module/app stakeholders pretty much update many things just as soon as they are available; note the recent OpenSSL and Subversion updates). These and other things enable my business to be quite productive.


But if this community and the cygwin developers are going to go to such great lengths to make such a comprehensive and robust unix-on-windows system, why not make a better installation-and-upgrade-package-management system?

See above.



Here's a thought: Why not just keep the setup.exe as it is, support all the users who I'm sure have mastered it by now and probably love it (for I doubt something like that would not have lasted this long without a devoted user set), and simply build an additional install-and-upgrade program that uses the same "back-end" technology/interfaces and presents something different to the user?

Possibly something for the future.. However there are always those time constraints, and so on.. Remember, this is pretty much entirely a volunteer project...

Anyway. I hope this helps you understand setup better, and find it
easier to use.. Or at least more tolerable ;)

Chris / EqUaTe

--

Chris Taylor

IT Manager
Catz Club

Tel: 02074723338
Mob: 07795444733
Fax: 02074331720

4 Daleham Mews
London
NW3 5DB

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


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