An app store , also called an app marketplace or app catalog , is a type of digital distribution platform for computer software called applications , often in a mobile context. Apps provide a specific set of functions which, by definition, do not include the running of the computer itself. Complex software designed for use on a personal computer , for example, may have a related app designed for use on a mobile device . Today apps are normally designed to run on a specific operating system —such as the contemporary iOS , macOS , Windows , Linux or Android —but in the past mobile carriers had their own portals for apps and related media content.
58-450: An app store is a restricted, commercial version of a package manager . An app store is any digital storefront intended to allow search and review of software titles or other media offered for sale electronically. Critically, the application storefront itself provides a secure, uniform experience that automates the electronic purchase, decryption and installation of software applications or other digital media. App stores typically organise
116-991: A backend . Yum extends the functionality of the backend by adding features such as simple configuration for maintaining a network of systems. As another example, the Synaptic Package Manager provides a graphical user interface by using the Advanced Packaging Tool (apt) library, which, in turn, relies on dpkg for core functionality. Alien is a program that converts between different Linux package formats , supporting conversion between Linux Standard Base (LSB) compliant .rpm packages, .deb , Stampede (.slp), Solaris (.pkg) and Slackware ( .tgz , .txz , .tbz, .tlz) packages. In mobile operating systems, Google Play consumes Android application package (APK) package format while Microsoft Store uses APPX and XAP formats. (Both Google Play and Microsoft Store have eponymous package managers.) By
174-405: A computer in a consistent manner. A package manager deals with packages , distributions of software and data in archive files . Packages contain metadata , such as the software's name, description of its purpose, version number, vendor, checksum (preferably a cryptographic hash function ), and a list of dependencies necessary for the software to run properly. Upon installation, metadata
232-477: A generic trademark to refer to other distribution platforms of a similar nature. Apple asserted trademark claims over the phrase, and filed a trademark registration for "App Store" in 2008. In 2011, Apple sued both Amazon.com (which runs the Amazon Appstore for Android-based devices) and GetJar (who has offered its services since 2004) for trademark infringement and false advertising regarding
290-758: A Senior Editor at NeXTWORLD Magazine , Simson Garfinkel , rated The Electronic AppWrapper 4 3/4 Cubes (out of 5), in his formal review. Paget's Electronic AppWrapper was named a finalist in the highly competitive InVision Multimedia '93 awards in January 1993 and won the Best of Breed award for Content and Information at NeXTWORLD Expo in May 1993. Prior to the Electronic AppWrapper, which first shipped in 1992, people were used to software distributed via floppy disks or CD-ROMs, one could even download software using
348-425: A binary executable package on the same or remote computer. Later a package manager typically running on some other computer downloads those pre-built binary executable packages over the internet and installs them. However, both kinds of tools have many commonalities: A few tools, such as Maak and A-A-P , are designed to handle both building and deployment, and can be used as either a build automation utility or as
406-614: A large extent translatable, as most package managers offer similar functions. The Arch Linux Pacman/Rosetta wiki offers an extensive overview. Package managers like dpkg have existed as early as 1994. Linux distributions oriented to binary packages rely heavily on package management systems as their primary means of managing and maintaining software. Mobile operating systems such as Android (Linux-based), iOS ( Unix-based ), and Windows Phone rely almost exclusively on their respective vendors' app stores and thus use their own dedicated package management systems. A package manager
464-449: A large number of computers. This kind of pre-configured installation is also supported by dpkg. To give users more control over the kinds of software that they are allowing to be installed on their system (and sometimes due to legal or convenience reasons on the distributors' side), software is often downloaded from a number of software repositories . When a user interacts with the package management software to bring about an upgrade, it
522-572: A new catalog application called Download Fun, also known as the Catalog or Premium Download Manager(PDM). This was one of the first modern app stores on a smartphone with a framework similar to what we see today with the other App Stores. The Download Fun catalog allowed users to download ringtones and applications directly to their device and be billed through their wireless carrier. Third party developers could develop native Java based applications using Danger's free SDK and submit them for distribution in
580-468: A package manager or both. App stores can also be considered application-level package managers (without the ability to install all levels of programs ). Unlike traditional package managers, app stores are designed to enable payment for the software itself (instead of for software development), and may only offer monolithic packages with no dependencies or dependency resolution. They are usually extremely limited in their management functionality, due to
638-717: A single process. Package managers predate appstores. In the mid-1990s, package managers developed automated dependency resolution and updates; they already kept track of program files and cleanly uninstalled packages. Some app stores have also developed these features. Package managers are used by most FOSS operating systems , for all of their software packages, not just application-level ones. Notable package managers in Unix-like operating systems have included FreeBSD Ports (1994), pkgsrc (1997), Debian 's APT (1998), YUM , and Gentoo 's Portage (which unlike most package managers, distributes packages containing source code that
SECTION 10
#1732764945595696-485: A strong focus on simplification over power or emergence , and common in commercial operating systems and locked-down “smart” devices. Package managers also often have only human-reviewed code. Many app stores, such and Google Play and Apple's App Store, screen apps mostly using automated tools only; malware with defeat devices can pass these tests, by detecting when the software is being automatically tested and delaying malicious activity. There are, however, exceptions;
754-474: A system. A software package is an archive file containing a computer program as well as necessary metadata for its deployment. The computer program can be in source code that has to be compiled and built first. Package metadata include package description, package version, and dependencies (other packages that need to be installed beforehand). Package managers are charged with the task of finding, installing, maintaining or uninstalling software packages upon
812-410: A web browser or command-line tools. Many Linux distributions and other Unix-like systems provide a tool known as a package manager . Package managers lack the financial transactions, and are not restricted to app-level software. A package manager allows a user to automatically manage the software installed on their systems, including both operating system components and third-party software. This
870-630: Is CheckInstall , and for recipe-based systems such as Gentoo Linux and hybrid systems such as Arch Linux , it is possible to write a recipe first, which then ensures that the package fits into the local package database. Particularly troublesome with software upgrades are upgrades of configuration files. Since package managers, at least on Unix systems, originated as extensions of file archiving utilities , they can usually only either overwrite or retain configuration files, rather than applying rules to them. There are exceptions to this that usually apply to kernel configuration (which, if broken, will render
928-406: Is a software tool designed to optimize the download and storage of binary files, artifacts and packages used and produced in the software development process . These package managers aim to standardize the way enterprises treat all package types. They give users the ability to apply security and compliance metrics across all artifact types. Universal package managers have been referred to as being at
986-466: Is also called " DLL hell " when working with dynamically linked libraries. Modern package managers have mostly solved these problems, by allowing parallel installation of multiple versions of a library (e.g. OPENSTEP 's Framework system), a dependency of any kind (e.g. slots in Gentoo Portage ), and even of packages compiled with different compiler versions (e.g. dynamic libraries built by
1044-506: Is automatically compiled instead of executables ). In 1996, the SUSE Linux distribution has YaST as frontend for its own software packages. Mandriva Linux has urpmi with GUI frontend called Rpmdrake . Fedora Linux and Red Hat Enterprise Linux has YUM in 2003 as a successor of YUP (developed at Duke University for Red Hat Linux ). In 1997, BeDepot a third-party app store and package manager ( Software Valet ) for BeOS
1102-432: Is customary to present the user with the list of actions to be executed (usually the list of packages to be upgraded, and possibly giving the old and new version numbers), and allow the user to either accept the upgrade in bulk, or select individual packages for upgrades. Many package managers can be configured to never upgrade certain packages, or to upgrade them only when critical vulnerabilities or instabilities are found in
1160-418: Is often called an "install manager", which can lead to a confusion between package managers and installers . The differences include: Most software configuration management systems treat building software and deploying software as separate, independent steps. A build automation utility typically takes human-readable source code files already on a computer, and automates the process of converting them into
1218-415: Is often done using command line tools, but some package managers have graphical front-end software which can be used to browse available packages and perform operations, such as Synaptic (which is often used as a front-end for APT). New software (and the other packages required for its proper operation, called dependencies ) can be retrieved from local or remote mirrors , and automatically installed, in
SECTION 20
#17327649455951276-568: Is stored in a local package database. Package managers typically maintain a database of software dependencies and version information to prevent software mismatches and missing prerequisites. They work closely with software repositories , binary repository managers , and app stores . Package managers are designed to eliminate the need for manual installs and updates. This can be particularly useful for large enterprises whose operating systems typically consist of hundreds or even tens of thousands of distinct software packages. An early package manager
1334-463: Is that free and open source software systems permit third-party packages to also be installed and upgraded through the same mechanism, whereas the package managers of Mac OS X and Windows will only upgrade software provided by Apple and Microsoft, respectively (with the exception of some third party drivers in Windows). The ability to continuously upgrade third-party software is typically added by adding
1392-426: Is to allow users to manage the software dependency on data, such as machine learning models for data-driven applications. They are useful to publish, locate, and install data packages. A typical example of a data dependency management frameworks are Hugging Face, KBox, among others. Ian Murdock had commented that package management is "the single biggest advancement Linux has brought to the industry", that it blurs
1450-516: The Debian package mirrors are still active in 2023. Debian removed FTP access to its mirrors in 2017 because of declining use and the relative stagnation of the FTP protocol, mentioning FTP servers' lack of support for techniques such as caching and load balancing that are available to HTTP. Modern mirrors support HTTPS and IPv6 along with IPv4. On occasion, some mirrors may choose not to replicate
1508-477: The Glasgow Haskell Compiler , where a stable ABI does not exist), in order to enable other packages to specify which version they were linked or even installed against. System administrators may install and maintain software using tools other than package management software. For example, a local administrator may download unpackaged source code, compile it, and install it. This may cause
1566-453: The URL of the corresponding repository to the package management's configuration file. Beside the system-level application managers, there are some add-on package managers for operating systems with limited capabilities and for programming languages in which developers need the latest libraries . Unlike system-level package managers, application-level package managers focus on a small part of
1624-703: The Ubuntu Software Center on version 9.10 as a replacement for Synaptic. On Ubuntu 10.10, released in October 2010, the Software Center expanded beyond only offering existing software from its repositories by adding the ability to purchase certain apps (which, at launch, was limited to Fluendo 's licensed DVD codecs ). Due to its popularity, the term "app store" (first used by the Electronic AppWrapper and later popularised by Apple 's App Store for iOS devices) has frequently been used as
1682-413: The npm package database, for instance, relies entirely on post-publication review of its code, while the Debian package database has an extensive human review process before any package goes into the main stable database. The XZ Utils backdoor used years of trust-building to insert a backdoor, which was nonetheless caught while in the testing database. Also known as binary repository manager , it
1740-1021: The App Store, it has been a major financial success for the company. The popularity of Apple's App Store led to the rise of the generic term "app store", as well as the introduction of equivalent marketplaces by competing mobile operating systems: the Android Market (later renamed to Google Play) launched alongside the release of the first Android smartphone (the HTC Dream ) in September 2008, BlackBerry 's App World launched in April 2009, as well as Nokia 's Ovi Store , Microsoft 's Windows Marketplace for Mobile , Palm 's App Catalog and Samsung 's Samsung Apps all launching that year. The popular Linux distribution Ubuntu (also based on Debian) introduced its own graphical software manager known as
1798-587: The Catalog. In October 2003, Handango introduced an on-device app store for finding, installing and buying software for Sony Ericsson P800 and P900 devices. App download and purchasing are completed directly on the device so sync with a computer is not necessary. Description, rating and screenshot are available for any app. In 2006, Nokia introduced Nokia Catalogs , later known as Nokia Download!, for Symbian smartphones which had access to downloadable apps—originally via third-parties like Handango or Jamba! but from mid-2006 Nokia were offering their own content via
App store - Misplaced Pages Continue
1856-639: The Nokia Content Discoverer. Apple released iPhone OS 2.0 in July 2008 for the iPhone , together with the App Store , officially introducing third-party app development and distribution to the platform. The service allows users to purchase and download new apps for their device through either the App Store on the device, or through the iTunes Store on the iTunes desktop software. While Apple has been criticised by some for how it operates
1914-574: The Ringers & More Wireless Download Service for their then-new 3G wireless network. This allowed subscribers to the Sprint PCS mobile phone network to download ringtones, wallpaper, J2ME applications and later full music tracks to certain phones. The user interface worked through a web browser on the desktop computer, and a version was available through the handset. In 2002, the commercial Linux distribution Linspire (then known as LindowsOS—which
1972-535: The app (including app purchase, if necessary – many apps are offered at no cost). The selected app is offered as an automatic download, after which the app installs. Some app stores may also include a system to automatically remove an installed program from devices under certain conditions, with the goal of protecting the user against malicious software. App stores typically provide a way for users to give reviews and ratings. Those reviews are useful for other users, for developers and for app store owners. Users can select
2030-405: The apps they offer based on: the function(s) provided by the app (including games, multimedia or productivity), the device for which the app was designed, and the operating system on which the app will run. App stores typically take the form of an online store , where users can browse through these different app categories, view information about each app (such as reviews or ratings), and acquire
2088-499: The best apps based on ratings, developers get feedback on what features are praised or disliked, and finally, app store owners can detect bad apps and malicious developers by automatically analyzing the reviews with data mining techniques. Many app stores are curated by their owners, requiring that submissions of prospective apps go through an approval process. These apps are inspected for compliance with certain guidelines (such as those for quality control and censorship ), including
2146-628: The boundaries between operating system and applications, and that it makes it "easier to push new innovations [...] into the marketplace and [...] evolve the OS". There is also a conference for package manager developers known as PackagingCon. It was established in 2021 with the aim to understand different approaches to package management. Web mirror Mirror sites or mirrors are replicas of other websites . The concept of mirroring applies to network services accessible through any protocol, such as HTTP or FTP . Such sites have different URLs than
2204-482: The center of a DevOps toolchain . Each package manager relies on the format and metadata of the packages it can manage. That is, package managers need groups of files to be bundled for the specific package manager along with appropriate metadata, such as dependencies. Often, a core set of utilities manages the basic installation from these packages and multiple package managers use these utilities to provide additional functionality. For example, yum relies on rpm as
2262-464: The characteristics and qualities that the public has come to expect from the Apple APP STORE and/or Apple products". In July 2013, Apple dropped its case. Package manager#Comparison with app stores A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for
2320-480: The computer unusable after a restart). Problems can be caused if the format of configuration files changes; for instance, if the old configuration file does not explicitly disable new options that should be disabled. Some package managers, such as Debian 's dpkg , allow configuration during installation. In other situations, it is desirable to install packages with the default configuration and then overwrite this configuration, for instance, in headless installations to
2378-551: The early internet, when most users accessed through dialup and the Internet backbone had much lower bandwidth than today, making a geographically-localized mirror network a worthwhile benefit. Download archives such as Info-Mac , Tucows and CPAN maintained worldwide networks mirroring their content accessible over HTTP or anonymous FTP . Some of these networks, such as Info-Mac or Tucows are no longer active or have removed their mirrored download sections, but some like CPAN or
App store - Misplaced Pages Continue
2436-451: The entire contents of the upstream server because of technical constraints, or selecting only a subset relevant to their purpose, such as software written in a particular programming language , runnable on a single computer platform , or written by one author. These sites are called partial mirrors or secondary mirrors . Notable websites with mirrors include Project Gutenberg , KickassTorrents , The Pirate Bay , WikiLeaks ,
2494-559: The first integrated online app store for mobile phones, gaining nationwide popularity in Japanese mobile phone culture . DoCoMo used a revenue-sharing business model, allowing content creators and app providers to keep up to 91% of revenue. Other operators outside Japan also made their own portals after this, such as Vodafone live! in 2002. At this time mobile phone manufacturer Nokia also introduced carrier-free downloadable content with Club Nokia . In December 2001, Sprint PCS launched
2552-466: The monthly subscription charge, the user only paying the per minute connection / data charges for a download, while other programs resulted in the user being additionally billed per purchase. The Electronic AppWrapper was the first commercial electronic software distribution catalog to collectively manage encryption and provide digital rights for apps and digital media (issue #3 was the app store originally demonstrated to Steve Jobs at NeXTWorld EXPO). While
2610-644: The nature of free and open source software , packages under similar and compatible licenses are available for use on a number of operating systems. These packages can be combined and distributed using configurable and internally complex packaging systems to handle many permutations of software and manage version-specific dependencies and conflicts. Some packaging systems of free and open source software are also themselves released as free and open source software. One typical difference between package management in proprietary operating systems, such as Mac OS X and Windows, and those in free and open source software, such as Linux,
2668-539: The original site, but host identical or near-identical content. Mirror sites are often located in a different geographic region than the original, or upstream site. The purpose of mirrors is to reduce network traffic , improve access speed , ensure availability of the original site for technical or political reasons, or provide a real-time backup of the original site. Mirror sites are particularly important in developing countries , where internet access may be slower or less reliable. Mirror sites were heavily used on
2726-444: The previous version, as defined by the packager of the software. This process is sometimes called version pinning . For instance: Some of the more advanced package management features offer "cascading package removal", in which all packages that depend on the target package and all packages that only the target package depends on, are also removed. Although the commands are specific for every particular package manager, they are to
2784-554: The requirement that a commission be collected on each sale of a paid app. Some app stores provide feedback to developers: number of installations, issues in the field (latency, crash, etc.). Commercial Bulletin board services appeared in the early 1980s, such as Micronet 800 (1983), that permitted registered subscribers to browse, purchase, and download software for a variety of proprietary operating systems, then offered by manufacturers such as Acorn, Apple, Commodore, Dragon, IBM, RML, Sinclair and Tandy. Some programs being included in
2842-448: The software system. They typically reside within a directory tree that is not maintained by the system-level package manager, such as c:\cygwin or /opt/sw . However, this might not be the case for the package managers that deal with programming libraries, leading to a possible conflict as both package managers may claim to "own" a file and might break upgrades. In 2016, Edgard Marx, a computer scientist from Leipzig University, coined
2900-477: The state of the local system to fall out of synchronization with the state of the package manager's database . The local administrator will be required to take additional measures, such as manually managing some dependencies or integrating the changes into the package manager. There are tools available to ensure that locally compiled packages are integrated with the package management. For distributions based on .deb and .rpm files as well as Slackware Linux, there
2958-567: The term Data Dependency Management to refer to the systems that deal with the management of data. Data Dependency Management systems are designed to facilitate the deployment and management of data on the cloud, personal computers, or smart devices (edge). Data Dependency Management frameworks can be used to describe how the data was conceived, licensing as well as its dependencies. The concept of data dependency management comes from software package dependency management tools such as npm for JavaScript, gem for Ruby, and NuGet for .NET. Their rationale
SECTION 50
#17327649455953016-467: The use of the term "app store" to refer to their services. Microsoft filed multiple objections against Apple's attempt to register the name as a trademark, considering it to already be a generic term. In January 2013, a United States district court rejected Apple's trademark claims against Amazon. The judge ruled that Apple had presented no evidence that Amazon had attempted "to mimic Apple's site or advertising" or communicated that its service "possesses
3074-474: The user's command. Typical functions of a package management system include: Computer systems that rely on dynamic library linking, instead of static library linking, share executable libraries of machine instructions across packages and applications. In these systems, conflicting relationships between different packages requiring different versions of libraries results in a challenge colloquially known as " dependency hell ". On Microsoft Windows systems, this
3132-632: The website of the Environmental Protection Agency , and Misplaced Pages . Some notable partial mirrors include free and open-source software projects such as GNU , in particular Linux distributions CentOS , Debian , Fedora , and Ubuntu ; such projects provide mirrors of the download sites (since those are expected to have high server load). Many open source application providers such as VideoLAN use mirrors to distribute VLC Media Player , and The Document Foundation uses mirrors to distribute LibreOffice . It
3190-550: Was SMIT (and its backend installp) from IBM AIX . SMIT was introduced with AIX 3.0 in 1989. Early package managers, from around 1994, had no automatic dependency resolution but could already drastically simplify the process of adding and removing software from a running system. By around 1995, beginning with CPAN , package managers began doing the work of downloading packages from a repository, automatically resolving its dependencies and installing them as needed, making it much easier to install, uninstall and update software from
3248-499: Was founded by Michael Robertson , founder of MP3.com ) introduced an app store known as Click'N'Run (CNR). For an annual subscription fee, users could perform one-click installation of free and paid apps through the CNR software. Doc Searls believed that the ease-of-use of CNR could help make desktop Linux a feasible reality. In September 2003, Danger Inc. released an over-the-air update for T-Mobile Sidekick devices which included
3306-538: Was launched, which operated until 2001. It was eventually acquired by Be Inc. BeDepot allowed for both commercial and free apps as well as handling updates In 1998, Information Technologies India Ltd (ITIL) launched Palmix, a web based app store exclusively for mobile and handheld devices. Palmix sold apps for the three major PDA platforms of the time: the Palm OS based Palm Pilots, Windows CE based devices, and Psion Epoc handhelds. In 1999, NTT DoCoMo launched i-mode ,
3364-420: Was once common for tech companies such as Microsoft , Hewlett-Packard or Apple to maintain a network of mirrors accessible over HTTP or anonymous FTP, hosting software updates , sample code and various freely-downloadable utilities . Much of these sites were shut down in the first decades of the 21st century, with Apple shutting down its FTP services in 2012 and Microsoft stopping updates in 2010. Today,
#594405