Frage

I've been investigating software artifact repositories like Artifactory, Nexus, and Archiva. Artifact repositories like these perform well in a continuous integration environment, with dependency management and automated build tools. They are largely influenced by Maven.

I am also aware of Linux package repositories, like what Debian or RedHat use. Downloading and installing software, with all necessary dependencies, is very easy with these systems.

What are the major differences between Maven-like repositories and Linux package repositories? Are there any fundamentally different design goals? Platform implementations aside, could they be interchangeable?

War es hilfreich?

Lösung 3

Linux package repositories

  • Primarily serve end-user software, but can also serve developer libraries
  • Release builds are prevalent, snapshot builds are sometimes available
  • Transitive dependencies commonly installed or removed automatically
  • Used to install packages frequently, and remove them infrequently
  • Packages are installed in a single, system-wide location
  • Serve only distribution-specific Linux software
  • Servers run on Linux
  • Command-line or graphical tools for browsing and downloading

Software artifact repositories

  • Primarily serve developer libraries, but can also serve end-user software
  • Release and snapshot builds are both common
  • Transitive dependencies handled various ways, depending on the package
  • Packages are essentially cached on the user's machine, and may be cleared frequently
  • Packages are cached per-project, not system-wide
  • Serve software for any operating system
  • Servers run on any desktop or server operating system
  • Web interface for browsing and downloading
  • Support a variety of protocols (Maven, Ivy, NuGet, P2, etc.)

Andere Tipps

Artifactory's got the YUM addon which enables it to act just like any standard HTTP exposed YUM server (for both deployment and resolution).

Support for Debian packages is on the roadmap, too.

The various artifact creation applications out there don't do anything that rpm or deb don't do, in fact they are in general far less capable and much more convoluted. I suspect the biggest issue with avoidance of deb or rpm is ignorance. The other is that the artifact is OS agnostic (although the build certainly is not) and distribution agnostic, so there is that, but I don't see any significant advantage to that.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top