The invention relates to the field of software distribution. Particularly, the invention relates to management of software packages.
Generation of new software packages, or upgrades to current software packages, must be installed on computers after distribution. This installation and upgrading of software packages on computers often requires a package manager to manage the installation. A software package management system (PMS) is a collection of software tools that automate the process of installing, upgrading, configuring, and removing software packages for a computer's operating system in a consistent manner. The PMS typically maintains a database of software dependencies and version information to prevent software mismatches and missing prerequisites.
One such PMS is the RPM Package Manager (RPM). RPM is a command line driven package management system capable of installing, uninstalling, verifying, querying, and updating computer software packages. However, the operation of RPM is limited to the Linux and UNIX operating systems. Thus, there no comparable package management system available on the Windows operating systems.
Accordingly, a mechanism for implementing a command line driven package management system for the Windows operating system is desired.
In one embodiment a computer system disclosed. The computer system includes a processing unit, a computer-readable medium coupled to the processing unit, a Windows operating system executed from the computer-readable medium an Extension PacKage (EPK) file stored on the computer-readable medium. The EPK file includes one or more software package files and a version file having metadata information to enable installation of the one or more software package files. The computer system also includes a package manager, executed from the computer-readable medium by the processing unit, to install the one or more software package files for operation on the Windows operating system.
In another embodiment, a method is disclosed. The method includes storing an EPK file including one or more software package files and a version file having metadata information to enable installation of the one or more software package files on a computer-readable medium, and a package manager processing the EPK file to install the one or more software package files for operation on a Windows operating system.
A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which:
A mechanism for implementing a software package management system for the Windows operating system is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid obscuring the underlying principles of the present invention.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Network 106 may be a local area network (LAN) or any other network over which print requests may be submitted to a remote printer or print server. Communications link 104 may be in the form of a network adapter, docking station, or the like, and supports communications between data processing system 102 and network 106 employing a network communications protocol such as Ethernet, the AS/400 Network, or the like.
According to one embodiment, network 106 includes a server 108 that serves data over network 106 via communications link 110 between server 108 and network 106. Server 108 subsequently transmits and receives data via communications link 110 to one or more data processing system 102. In one embodiment, server 108 distributes software to a data processing system 102 via network 106.
In one embodiment, EPK file 210 includes the software package files to be installed, a version file that includes information regarding the version of the package, and metadata that enables installation, query and uninstallation of the software package at data processing system 102. According to one embodiment, the software package files within EPK file 210 may include individual components of a comprehensive software package. Thus, EPK file 210 enables updating individual packages of the comprehensive software package, rather than re-installation of the entire package at once.
EPK file 210 also includes a prerequisites file used during installation of the software package files. The prerequisites included in the prerequisites file establish the interdependency of the software package files in which certain files dependent on one or more other files cannot be installed until after the files from which it depends. In a further embodiment, EPK file 210 includes a post installation command script that is activated upon installation of EPK file 210.
According to one embodiment, the files within EPK file 210 are compressed using a ZIP file format and named with a .epk extension (e.g., “PROGFILE.epk”). Once completed, EPK file 210 is transmitted to data processing system 102. However in other embodiments, EPK file 210 may be downloaded to EPK file 210 via a machine readable medium (e.g., floppy disk, compact disc (CD-ROM), ESB drive, etc.).
Once downloaded at data processing system 102, EPK file 210 is processed by package manager 220. In one embodiment, package manager 220 includes tools that provide installation and uninstallation of EPK file 210 and the included software package files. In a further embodiment, package manager 220 includes tools to query EPK files on data processing system 102 and provide a configurable installation directory. In one embodiment, package manager 220 is pre-installed at data processing system 102 prior to receiving EPK file 210. However in other embodiments, package manager 220 may be distributed to data processing system 102 along with EPK file 210.
According to one embodiment, EPK file 210, upon being unzipped by package manager 220, includes the following files, referenced from the root of the zip file:
In one embodiment, the version file includes the metadata about the package. A sample version file includes:
The above sample describes a package named “doc1” that is version 2.1.1.25-29.0, and has afpvwb and doc packages as prerequisites for installation.
Computer system 400 further comprises a random access memory (RAM) or other dynamic storage device 425 (referred to herein as main memory), coupled to bus 420 for storing information and instructions to be executed by processor 410. Main memory 325 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 410. Computer system 400 also may include a read only memory (ROM) or other static storage device 426 coupled to bus 420 for storing static information and instructions used by processor 410.
A data storage device 425 such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system 400 for storing information and instructions. Computer system 400 can also be coupled to a second I/O bus 450 via an I/O interface 430. A plurality of I/O devices may be coupled to I/O bus 450, including a display device 424, an input device (e.g., an alphanumeric input device 423 and or a cursor control device 422). The communication device 421 is for accessing other computers (servers or clients). The communication device 421 may comprise a modem, a network interface card, or other well-known interface device, such as those used for coupling to Ethernet, token ring, or other types of networks.
Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions. The instructions can be used to cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
Whereas many alterations and modifications of the present invention will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular embodiment shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various embodiments are not intended to limit the scope of the claims, which in themselves recite only those features regarded as essential to the invention.