Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I just went to update my Ubuntu system, and realized how similar in spirit
Code:
sudo apt-get install dist-upgrade
is to
Code:
svn update
I understand that packages are primarily binaries, and svn repos primarily ASCII, but it seems like a diff-patch-based package management utility (e.g. svn) could be a "cool" thing to have.
apt(itude) works great -- not trying to suggest I'm unpleased with it. Where would our lives be without it, after all.
It is true that many software applications are available via svn but that system is better suited to developers obtaining a generic configuration than to system administrators obtaining a configuration that is optimized to work on their distribution.
The APT software suite is geared to ensuring that dependencies for applications are met without breaking other applications or system functions. The distribution developers (presumably) invest a great deal of time to configure software applications to install and run in their specific environment (their distribution). This is the reason that you are often better off installing an application from the software repository of your distribution than from the application's web site. The APT package manager, as well as YUM and rpm and SMART and all of the other package managers, do not simply untar a generic application into the system directories. They maintain a representation of your system and resolve inconsistencies between the files of different applications and between system files and application files.
I'll stop here since I don't want to write a book on the subject.
In terms of bandwidth, downloading only a diff between two packages is a rather similar concept (but there are always packages that want to do things that aren't simple diffs). SVN would help in downloading less data, but - to paraphrase and elaborate on stress_junkey - downloading the data is the almost the easiest part of a package manager's job: maintaining dependencies and getting the installers/updaters to work reliably even across different hardware is much more work.
I'm sure that I read somewhere that recent RPM systems can send updates based on incremental tar files (although I can't find a reference off hand so I may be wrong).
Distribution: Debian /Jessie/Stretch/Sid, Linux Mint DE
Posts: 5,195
Rep:
svn update and apt-get dist-upgrade are similar indeed. It is not a problem if you want to make your machine a updated copy of whatever is on the svn server.
However... I have a feeling dist-upgrade is by far not the most frequently used apt-get command.
The main goal of apt-get is to check and resolve dependencies, especially during install of a new package or an install of a single package upgrade. What would happen if you would update just one program from svn which depends on other programs or library versions? And those programs depend on others as well?
It is the strength of apt and perhaps any package manager to keep the system in a stable state where no depencies exist. That is exactly what svn does not do as it allows you to check out any version onto your system just as you say. Which is great for a version control system, but catastrofal for a package manager.
In short, RCS's are not Package Managers. Just like file systems are not databases (yeah, I know that comparisons are never 100% fair, but...).
RCS's are not mean suitable for binary files, and no project that I know hosts binary releases on svn nor a similar system. The closes I could think of is to build a clone of gentoo using only live ebuilds that will build your programs from svn. Not quite what you are looking for though, I wouldn't serve your purpose of saving time and bandwidth at all
The dependency handling is indeed the big difference.
This was the benefit I was after, I believe:
Quote:
I'm sure that I read somewhere that recent RPM systems can send updates based on incremental tar files (although I can't find a reference off hand so I may be wrong).
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.