I recommend using Linux. It makes things so much easier when it comes to software installation / updating.
For example, I'm using Linux Mint (which is based on Ubuntu which is based on Debian).
Idea how repositories work
Every piece of software is (together with some meta-information) bundled to a package. So a package contains:
- The name of the package (which has to be unique and does not necessarily match the original name of the software)
- a description,
- much more
For example, for the package
filezilla it looks like this:
$ apt-cache show filezilla
Maintainer: Ubuntu Developers <email@example.com>
Original-Maintainer: Adrien Cunin <firstname.lastname@example.org>
Depends: libc6 (>= 2.15), libdbus-1-3 (>= 1.1.1), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.12.0), libgnutls26 (>= 2.12.17-0), libidn11 (>= 1.13), libsqlite3-0 (>= 3.5.9), libstdc++6 (>= 4.8), libtinyxml2.6.2, libwxbase2.8-0 (>= 184.108.40.206), libwxgtk2.8-0 (>= 220.127.116.11), filezilla-common (= 3.7.3-1ubuntu1)
Description-en: Full-featured graphical FTP/FTPS/SFTP client
FileZilla is a full-featured FTP client with an easy-to-use GUI.
It is written in C++ and uses the wxWidgets library.
FileZilla includes the following features:
* Supports FTP, FTP over SSL/TLS (FTPS) and SSH File Transfer Protocol (SFTP)
* IPv6 support
* Available in more than 40 languages
* Supports resume and transfer of large files >4GB
* Easy to use Site Manager and transfer queue
* Drag & drop support
* Speed limits
* Filename filters
* Directory comparison
* Network configuration wizard
* Remote file editing
* HTTP/1.1, SOCKS5 and FTP Proxy support
* Logging to file
* Synchronized directory browsing
* Remote file search
* Tabbed interface to connect to multiple servers
So called "package maintainers" are responsible for the package. You can contact them if the software isn't installing correctly. They should make sure that the software is up-to-date and they make sure that all dependencies are correct.
A repository is a list of packages. For Debian stable, there are almost 50,000 packages (see this huge list).
Note that you can use more than one repository. Sometimes, there are "official" repositories for software, fore example:
Updating all software
Just two commands and every single program on your system (that was installed over a repository) gets updated:
$ sudo apt-get update
$ sudo apt-get upgrade
Search for software
$ sudo apt-cache search adobe reader
Installing new software
$ sudo apt-get install filezilla
If you don't have much bandwidth / a lot of computers, you might want to install an apt-cacher-server: https://help.ubuntu.com/community/Apt-Cacher-Server
The idea is that the server downloads everything once and provides it for all clients in the lokal network (I haven't tried this).
$ apt-cache madison filezilla vlc acroread
filezilla | 3.7.3-1ubuntu1 | http://archive.ubuntu.com/ubuntu/ saucy/universe amd64 Packages
vlc | 2.0.8-1 | http://archive.ubuntu.com/ubuntu/ saucy/universe amd64 Packages
acroread | 9.5.5-1precise1 | http://archive.canonical.com/ precise/partner amd64 Packages
or via Web:
But note: The packages don't always correspond to the latest version of the program that is available. But (at least for debian) the packages are VERY stable. I think arch is less stable, but more recent.