US20110296398A1 - Systems and methods for determining when to update a package manager software - Google Patents

Systems and methods for determining when to update a package manager software Download PDF

Info

Publication number
US20110296398A1
US20110296398A1 US12/790,752 US79075210A US2011296398A1 US 20110296398 A1 US20110296398 A1 US 20110296398A1 US 79075210 A US79075210 A US 79075210A US 2011296398 A1 US2011296398 A1 US 2011296398A1
Authority
US
United States
Prior art keywords
package
update
version
package manager
manager software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US12/790,752
Other versions
US9417865B2 (en
Inventor
Seth Kelby Vidal
James Antill
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Red Hat Inc
Original Assignee
Red Hat Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Red Hat Inc filed Critical Red Hat Inc
Priority to US12/790,752 priority Critical patent/US9417865B2/en
Assigned to RED HAT, INC. reassignment RED HAT, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ANTILL, JAMES, VIDAL, SETH KELBY
Publication of US20110296398A1 publication Critical patent/US20110296398A1/en
Application granted granted Critical
Publication of US9417865B2 publication Critical patent/US9417865B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Definitions

  • the present teachings relate to systems and methods for determining when to update a package manager software, and more particularly, to platforms and techniques for ensuring compatibility between a package manager software and an update to resources installed on a client.
  • a package management system can facilitate the process of installing, upgrading, configuring, and removing software packages associated with a client computer.
  • the software packages can contain a set of related files chosen to perform a given application or task, such as, for example, a group of software applications, drivers, and/or other resources used to install and use messaging or media applications.
  • a software package can contain application software, operating system software, drivers, patches, and/or other software components grouped as a logical set.
  • the package can be stored or encoded as a single file or data object.
  • Package managers exist to help a user initiate and perform software package updates, such as, for example, the “yum” (Yellowdog update manager) package manager available from Red HatTM, Inc., Raleigh, N.C., and others.
  • available package managers are configured to interact with the set of installed software packages on a client and with one or more software package repositories, to directly connect to those databases and download available package updates.
  • the package manager itself can have a software version to facilitate the software package updates. Over time, updated versions for the package manager software can be developed to accommodate changes in software packages or software repositories. However, the ability to update the software packages can depend on a certain version of the package manager software being installed on a client. It may therefore be desirable to provide systems and methods for determining when to update a package manager software to ensure compatibility between a package manager software and an update to resources installed on the client. Further, it may be desirable to update the package manager software without impacting the associated packages and resources.
  • FIG. 1 illustrates an overall network in which systems and methods for determining when to update a package manager software can be implemented, according to various embodiments
  • FIG. 2 illustrates another example of the overall network in which systems and methods for determining when to update a package manager software can be implemented, according to various embodiments in further regards;
  • FIG. 3 illustrates an exemplary detailed network in which systems and methods for determining when to update a package manager software can be implemented, according to various embodiments in further regards;
  • FIG. 4 illustrates exemplary hardware and other resources of a client machine that can be used in systems and methods for determining when to update a package manager software, according to various embodiments
  • FIG. 5 illustrates a flowchart of software package update management that can be used in systems and methods for determining when to update a package manager software, according to various embodiments.
  • Embodiments of the present teachings relate to systems and methods for determining when to update a package manager software. More particularly, embodiments relate to platforms and techniques for ensuring compatibility between a package manager software and an update to application packages and/or other packages or resources installed on a client.
  • the package manager can employ a first version of a package manager software and use the first version to access, download, or otherwise obtain a second version of the package manager software.
  • An update tool associated with the package manager can inspect an update to a package installed on the client and can determine that the update to the package requires that the second version of the package manager software be installed on the client.
  • the update tool can unpack and install the second version of the package manager software on the package manager.
  • the update tool can update, using the second version of the package manager software, the package installed on the client and other associated resources of the client that may be needed for compatibility with or to support the execution of the second version of the package manager software.
  • the update tool can inspect, detect, diagnose, or otherwise determine any potential conflicts, bugs, faults, and/or other conditions, and causes thereof, of a package manager software update or other package updates. Further, the update tool can generate a notification to the user of those potential update issues.
  • the notification can indicate that a dependency issue exists before a further update can be performed, such as that a specific version of the package manager software needs to be installed in order for a package already installed on the client to be updated.
  • the notification can include an indication of which resources associated with the client need to be updated to support the specific version of the package manager software. A user can then confirm, discontinue, change, or retry any processing associated with the package manager software update.
  • the user can choose to update the package manager software and continue with applicable package updates. Further, the user can choose to discontinue with the package manager software or other packages updates if, for example, the updates may produce an undesirable result.
  • package manager can be a tool or collection of tools or resources configured to install, unpack, upgrade, configure, or remove software packages from a client computer.
  • packetage manager software can be an application, software, or set of files executing in conjunction with the package manager to facilitate the functions of the package manager.
  • the “yum” package manager available from Red HatTM, Inc., and others can have an associated version for its package manager software. Further, the package manager software can be updated when there is a subsequent version available.
  • FIG. 1 illustrates an exemplary system 100 in which systems and methods for determining when to update a package manager software can be implemented.
  • a client 102 can store, execute, and otherwise host a variety of resources including a package manager 110 configured to communicate with a set of installed software packages 112 , and other hardware, software, and resources.
  • package manager 110 can be or can include a software application, a utility, an application programming interface (API) to an operating system 136 of client 102 , a service, and/or other local or remote logic or resources.
  • package manager 110 can access and manage set of installed software packages 112 to run, edit, update, configure, and/or otherwise manage one or more software packages hosted or installed in client 102 .
  • API application programming interface
  • package manager 110 can be or can include one or more commercially and/or publicly available package manager applications or resources, such as the “yum” package update manager available from Red HatTM, Inc., or others, based on or compatible with the Red HatTM, Inc. package manager (rpm) platform, or others.
  • package manager applications or resources such as the “yum” package update manager available from Red HatTM, Inc., or others, based on or compatible with the Red HatTM, Inc. package manager (rpm) platform, or others.
  • set of installed software packages 112 can be or include packages comprising various types of applications 160 , such as, for example, messaging applications, spreadsheet or modeling applications, social networking applications, word processing applications, and/or other applications or utilities, and can in embodiments include an operating system, drivers, and/or components.
  • set of installed software packages 112 can have an associated set of package attributes 114 which can record file names, versions, dates, software requirements, and/or other attributes related to each of set of installed software packages 112 or to the package manager software.
  • Package manager 110 can communicate with a network interface 134 configured to connect to one or more networks 106 , such as the public Internet or other public or private networks. Package manager 110 can thereby connect to one or more package repositories 144 hosting software packages including package updates, package manager software updates, and/or other software or resources.
  • networks 106 such as the public Internet or other public or private networks.
  • Package manager 110 can thereby connect to one or more package repositories 144 hosting software packages including package updates, package manager software updates, and/or other software or resources.
  • Package manager 110 can also interact and/or communicate with set of installed software packages 112 and one or more package repositories 144 to initiate, configure, test, update, and/or otherwise manage set of installed software packages 112 operating on client 102 .
  • Package manager 110 can, for example, provide a user with a set of package update options 146 displayed via user interface 142 , such as a graphical user interface or others, to select various test, configuration, and/or other management activities on set of installed software packages 112 . For example, a user can select to initiate an update on one or more packages of set of installed software packages 112 , install a new package update on client 102 , or update an installed package manager software via user interface 142 .
  • package manager 110 can communicate with an update tool 104 hosted on client 102 , to determine compatibility issues between updates to set of installed software packages 112 and an installed version of the package manager software.
  • update tool 104 can be a standalone entity or resource, or can be integrated as part of package manager 110 .
  • update tool 104 can determine potential instabilities of resources on client 102 associated with unpacking and installing a new version of a package manager software.
  • Update tool 104 can update client resources to alleviate the potential instabilities, such as, for example, by installing new application versions, software patches, and similar updates to resources.
  • update tool 104 can generate reports and notifications regarding a potential instability, one or more causes of the potential instability and categories thereof, or other conditions of package manager software update activities conducted on client 102 . By determining the one or more causes of the potential instabilities, a user can be notified of future potential instabilities or other conditions that might be caused by updating a package manager software or other packages. Update tool 104 can record diagnostic information such as, for example, the one or more causes of the potential instabilities, origins of the one or more causes, and other data.
  • Update tool 104 can also contain or access diagnostic logic to examine data generated or hosted by various resources, including set of installed software packages 112 , operating system 136 , or one or more repositories 144 to generate user notifications and other output to support and manage the updating of package manager software or other packages.
  • package manager 110 can connect to one or more package repositories 144 via one or more networks 106 .
  • Package manager 110 can present and manage set of update options 146 to initiate and conduct download activity, for example to initiate the download of one or more package updates.
  • update tool 104 can interface with package manger 110 running a first version of package manager software. Further, update tool 104 can identify an update to one of set of installed software packages 112 . Update tool 104 can inspect the package update for an indication that a second (or other) version of the package manager software needs to be installed on package manager 110 for the package update to be installed.
  • the package update can be made available in one or more package repositories 144 , and can be accessed and inspected by update tool 104 via network 106 .
  • the package update can comprise associated metadata that can indicate a version requirement for the package manager software.
  • the metadata of the package update can indicate that the second version of the package manager software is required to install the package update.
  • Update tool 104 can facilitate the update of a software version of package manager 110 itself.
  • package manager 110 executing on the first version of a package manager software, can connect to one or more package repositories 144 to access, download, or otherwise obtain the second version of the package manager software.
  • the second version of the package manager software can be encompassed in a software package.
  • the second version of the package manager software can be one or more version numbers or iterations from the first version of the package manager software. For example, there can be multiple update versions of the package manager software that were released between the releases of the first version and the second version.
  • the systems and methods can be configured to unpack and install the most recent version of the package manager software that is also compatible with resources of or updates to set of installed software packages 112 on client 102 .
  • a version 10.0 of a package manager software is both available and compatible with updates to set of installed software packages 112
  • a version 9.5 that is compatible with the updates to set of installed software packages 112 but not available
  • a version 9.0 of the package manager software is available but not compatible with the updates to set of installed software packages 112
  • update tool 104 , package manager 110 , or other logic can access the version 10.0 for unpacking and installation on package manager 110 .
  • Update tool 104 can, using the first version of the package manager software, unpack and install the second version of the package manager software on package manager 110 .
  • update tool 104 can remove files or data associated with the first version of the package manager software from package manager 110 , client 102 , or other components thereof.
  • update tool 104 can install the update to the applicable one or more set of installed software packages 112 that require the second version of the package manager software.
  • update tool 104 and/or other logic can examine the second version of the package manager software to determine a set of resources on client 102 for which an update is necessary to support the second version of the package manager software.
  • update tool 104 can examine metadata contained in the package received from the one or more package repositories 144 for indications of resource update information. Further, in embodiments, update tool 104 can determine the set of resources automatically by, for example, examining current and future dependencies between the package manager software and the set of resources.
  • Update tool 104 can update the determined set of resources on client 102 .
  • update tool 104 can retrieve files or data necessary for the update of the set of resources from the software package received from the one or more package repositories 144 .
  • update tool 104 can retrieve files or data necessary for the update of the set of resources from local memory such as a database 116 or from a network location accessible by network 106 .
  • update tool 104 can remove outdated files or data associated with the updated set of resources.
  • flies or data associated with the updated set of resources can be removed at any point after updating the package manager software and/or the one or more set of installed software packages 112 .
  • update tool 104 and/or other logic can create and/or maintain an event log 154 to store update events on client 102 .
  • event log 154 or other records may indicate an update to the software package manager, set of installed software packages 112 , or one or more resources on client 102 necessary to support any associated updates.
  • update tool 104 can be configured to handle any failures in the accessing, unpacking, or installing of the second version of the package manager software or the update to the applicable one or more set of installed software packages 112 .
  • update tool 104 can be configured to revert any resources associated with client 102 back to a previous state, such as the state that the resources were in prior to the update attempt.
  • update tool 104 can reinstall a prior version of a package manager software if an installation of a newer version of the package manager software fails.
  • failure handling mechanisms are envisioned, such as, for example, reverting only some, or none, of the resources associated with the client, and other mechanisms.
  • update tool 104 and/or other logic can provide one or more notifications 152 to users of client 102 .
  • notification 152 can contain an indication that a new version of the package manager software needs to be installed in order to update one or more set of installed software packages 112 .
  • notification 152 can contain information regarding which resources on client 102 need to be updated to support the second version of the package manager software.
  • notification 152 can contain an indication of the success or failure of an update associated with the embodiments as described herein.
  • Other types of conditions related to the state of client 102 and its resources, as well as set of installed software packages 112 and other resources can be identified and reported to the user via one or more notifications 152 .
  • update tool 104 can identify and generate notifications automatically, and/or, can generate notifications, updates, and/or other activity based on user configuration settings, such as selections to display or suppress the display of selected notifications, and/or to automatically perform selected update actions or other processes, as described herein.
  • update tool 104 can generate one or more notifications 152 before, during, or after the update of the package manager software.
  • update tool 104 can access other data resources, such as database 116 , that can contain for example monitored or recorded system data.
  • update tool 104 can utilize data stored in database 116 for use during future package manager software updates.
  • FIG. 3 illustrates a detailed exemplary system 300 comprising similar components to those of system 100 as described in accordance with FIGS. 1 and 2 , in which systems and methods for determining when to update a package manager software can be implemented.
  • System 300 can comprise client 102 and one or more package repositories 144 , as described herein.
  • Client 102 can comprise package manager 110 , set of installed software packages 112 , and update tool 104 , as described herein.
  • Update tool 104 or other logic can access one or more package repositories 144 via network 106 , as described herein.
  • One or more package repositories 144 can comprise one or more package updates 302 that can correspond to available updates to one or more of set of installed software packages 112 .
  • update tool 104 can download one or more package updates 302 to client 102 before inspecting and/or accessing the contents.
  • One or more package updates 302 can each have a set of associated attributes.
  • the set of attributes can comprise a package ID, an update version number, and a required package manager version number.
  • the package ID and the update version number can identify which package is to be updated and the associated version number of the update, respectfully.
  • the required package manager version number can specify the version of the package manager software that is required to update the package specified by the package ID.
  • update tool 104 can be configured to access version 3.0 of the package manager software from, for example, one or more package repositories 144 or other sources, unpack version 3.0, and install version 3.0 on package manager 110 . After installation of version 3.0 on package manager 110 , update tool 104 can access and install the available package update using version 3.0 of the package manager software.
  • FIG. 4 illustrates an exemplary diagram of hardware and other resources that can be incorporated in a client 102 configured to update a package manager software, one or more set of installed software packages 112 , and other resources associated with package manager 110 and other components.
  • client 102 can comprise a processor 130 communicating with memory 132 , such as electronic random access memory, operating under control of or in conjunction with operating system 136 .
  • Operating system 136 can be, for example, a distribution of the LinuxTM operating system, the UnixTM operating system, or other open-source or proprietary operating system or platform.
  • Processor 130 also communicates with data store 138 , such as a database stored on a local hard drive.
  • Processor 130 can further communicate with a network interface 134 , such as an Ethernet or wireless data connection, which in turn communicates with one or more networks 106 , such as the Internet or other public or private networks.
  • a network interface 134 such as an Ethernet or wireless data connection
  • Processor 130 can also communicate with update tool 104 , package manager 110 , and/or other resources to execute control logic and control the updating, unpacking, installation, analysis and management of package manager software and their associated processes.
  • Other configurations of client 102 including processor and memory resources, associated network connections, and other hardware and software resources are possible.
  • FIG. 5 illustrates overall processing to update a package manager software, according to various embodiments.
  • processing can begin.
  • a first version of a package manager software can be initiated on package manager 110 of client 102 .
  • the first version of the package manager software can be used to inspect an update to a package installed on client 102 .
  • the update to the package installed in client 102 can be inspected by extracting a required package manager version number from one or more package repositories 144 and/or another site or source.
  • update tool 104 or other logic can determine that a second version of the package manager software is required to install the update to the package.
  • the extracted required package manager version number of the update (here, the second version) can be compared to the installed version of the package manager software (here, the first version).
  • a user of client 102 can be notified that the package manager software needs to be updated.
  • the user of client 102 can be notified via a communication, via an interface such as a graphical user interface (GUI), or via other methods.
  • GUI graphical user interface
  • the user can provide approval to proceed with the updating of the package manager software. If the user does not provide approval, processing can proceed to end at 520 . If the user provides approval, processing can proceed to 512 , in which the first version of the package manager software can be used to access the second version of the package manager software.
  • package manager 110 can access the second version of the package manager software from one or more package repositories 144 . Further, in embodiments, the second version of the package manager software can be encompassed in a package.
  • the first version of the package manager software can be removed or uninstalled from package manger 110 .
  • prior versions or outdated files of other resources associated with the first version of the package manager software can be uninstalled or otherwise removed from client 102 .
  • the second version of the package manager software can be unpacked and installed on package manager 110 of client 102 .
  • the update to the package installed on the client can be installed using the second version of the package manager software.
  • package manager 110 can access the update to the package from one or more package repositories 144 . Further, in embodiments, the update to the package can be encompassed in the same package that contained the second version of the package manager software, or other packages.
  • one or more resources on client 102 can be updated.
  • the one or more resources can be used to support operation of or maintain compatibility with the second version of the package manager software or the updated package, and can be any hardware or software associated with client 102 such as, for example, an operating system, application, interface, memory, peripheral, media card, and other hardware or software.
  • update tool 104 can facilitate the updating of the one or more resources.
  • update tool 104 can install a patch on an operating system of client 102 .
  • update tool 104 can communicate with a remote download server to download an update to an application installed on client 102 and install the update to the application.
  • processing can return to a prior processing point, jump to a further processing point, or end.
  • a unitary package manager 110 is configured to control package manager software update activity
  • multiple applications or software can interact to control the downloading, unpacking, installation, testing, and other management of package manager software updates.
  • a package manager software can be updated from one version to another, it should be understood that the systems and methods can replace one package manager with another package manager, such as, for example, replacing the “up2date” package manager available from Red HatTM, Inc. with the “yum” package manager available from Red HatTM, Inc.

Abstract

Embodiments relate to systems and methods for determining when to update a package manager software on a client. An update tool can interface with a package manager running a first version of the package manager software to inspect an available update to a package installed on the client. The update tool can determine that a second version of the package manager software is require to install the update to the package. The update tool can access the second version of the package manager software, remove the first version of the package manager software from the package manager, and unpack and install the second version of the package manager software on the package manager. Further, the update tool can install the update to the package installed on the client, and can update other resources associated with the client as appropriate.

Description

    FIELD
  • The present teachings relate to systems and methods for determining when to update a package manager software, and more particularly, to platforms and techniques for ensuring compatibility between a package manager software and an update to resources installed on a client.
  • BACKGROUND OF RELATED ART
  • A package management system can facilitate the process of installing, upgrading, configuring, and removing software packages associated with a client computer. The software packages can contain a set of related files chosen to perform a given application or task, such as, for example, a group of software applications, drivers, and/or other resources used to install and use messaging or media applications. In instances, a software package can contain application software, operating system software, drivers, patches, and/or other software components grouped as a logical set. In implementations, the package can be stored or encoded as a single file or data object.
  • Package managers exist to help a user initiate and perform software package updates, such as, for example, the “yum” (Yellowdog update manager) package manager available from Red Hat™, Inc., Raleigh, N.C., and others. In general, available package managers are configured to interact with the set of installed software packages on a client and with one or more software package repositories, to directly connect to those databases and download available package updates.
  • The package manager itself can have a software version to facilitate the software package updates. Over time, updated versions for the package manager software can be developed to accommodate changes in software packages or software repositories. However, the ability to update the software packages can depend on a certain version of the package manager software being installed on a client. It may therefore be desirable to provide systems and methods for determining when to update a package manager software to ensure compatibility between a package manager software and an update to resources installed on the client. Further, it may be desirable to update the package manager software without impacting the associated packages and resources.
  • DESCRIPTION OF DRAWINGS
  • The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present teachings and together with the description, serve to explain the principles of the present teachings. In the figures:
  • FIG. 1 illustrates an overall network in which systems and methods for determining when to update a package manager software can be implemented, according to various embodiments;
  • FIG. 2 illustrates another example of the overall network in which systems and methods for determining when to update a package manager software can be implemented, according to various embodiments in further regards;
  • FIG. 3 illustrates an exemplary detailed network in which systems and methods for determining when to update a package manager software can be implemented, according to various embodiments in further regards; and
  • FIG. 4 illustrates exemplary hardware and other resources of a client machine that can be used in systems and methods for determining when to update a package manager software, according to various embodiments;
  • FIG. 5 illustrates a flowchart of software package update management that can be used in systems and methods for determining when to update a package manager software, according to various embodiments.
  • DESCRIPTION OF EMBODIMENTS
  • Embodiments of the present teachings relate to systems and methods for determining when to update a package manager software. More particularly, embodiments relate to platforms and techniques for ensuring compatibility between a package manager software and an update to application packages and/or other packages or resources installed on a client. In embodiments, the package manager can employ a first version of a package manager software and use the first version to access, download, or otherwise obtain a second version of the package manager software. An update tool associated with the package manager can inspect an update to a package installed on the client and can determine that the update to the package requires that the second version of the package manager software be installed on the client. The update tool can unpack and install the second version of the package manager software on the package manager. Further, the update tool can update, using the second version of the package manager software, the package installed on the client and other associated resources of the client that may be needed for compatibility with or to support the execution of the second version of the package manager software.
  • The update tool can inspect, detect, diagnose, or otherwise determine any potential conflicts, bugs, faults, and/or other conditions, and causes thereof, of a package manager software update or other package updates. Further, the update tool can generate a notification to the user of those potential update issues. In embodiments, the notification can indicate that a dependency issue exists before a further update can be performed, such as that a specific version of the package manager software needs to be installed in order for a package already installed on the client to be updated. In further embodiments, the notification can include an indication of which resources associated with the client need to be updated to support the specific version of the package manager software. A user can then confirm, discontinue, change, or retry any processing associated with the package manager software update. For example, the user can choose to update the package manager software and continue with applicable package updates. Further, the user can choose to discontinue with the package manager software or other packages updates if, for example, the updates may produce an undesirable result. These and other embodiments described herein address the various noted shortcomings in known package manager software update technology, and provide more capability for unpacking and installing new versions of package manager software or updates to other packages with less potential for software or hardware conflicts, errors, or other undesirable results of updating activity.
  • As used herein, “package manager” can be a tool or collection of tools or resources configured to install, unpack, upgrade, configure, or remove software packages from a client computer. Further, as used herein, “package manager software” can be an application, software, or set of files executing in conjunction with the package manager to facilitate the functions of the package manager. For example, the “yum” package manager available from Red Hat™, Inc., and others, can have an associated version for its package manager software. Further, the package manager software can be updated when there is a subsequent version available.
  • Reference will now be made in detail to exemplary embodiments of the present teachings, which are illustrated in the accompanying drawings. Where possible the same reference numbers will be used throughout the drawings to refer to the same or like parts.
  • FIG. 1 illustrates an exemplary system 100 in which systems and methods for determining when to update a package manager software can be implemented. In embodiments as shown, a client 102 can store, execute, and otherwise host a variety of resources including a package manager 110 configured to communicate with a set of installed software packages 112, and other hardware, software, and resources. In embodiments, package manager 110 can be or can include a software application, a utility, an application programming interface (API) to an operating system 136 of client 102, a service, and/or other local or remote logic or resources. According to embodiments, package manager 110 can access and manage set of installed software packages 112 to run, edit, update, configure, and/or otherwise manage one or more software packages hosted or installed in client 102. In embodiments, package manager 110 can be or can include one or more commercially and/or publicly available package manager applications or resources, such as the “yum” package update manager available from Red Hat™, Inc., or others, based on or compatible with the Red Hat™, Inc. package manager (rpm) platform, or others.
  • In embodiments, set of installed software packages 112 can be or include packages comprising various types of applications 160, such as, for example, messaging applications, spreadsheet or modeling applications, social networking applications, word processing applications, and/or other applications or utilities, and can in embodiments include an operating system, drivers, and/or components. set of installed software packages 112 can have an associated set of package attributes 114 which can record file names, versions, dates, software requirements, and/or other attributes related to each of set of installed software packages 112 or to the package manager software.
  • Package manager 110 can communicate with a network interface 134 configured to connect to one or more networks 106, such as the public Internet or other public or private networks. Package manager 110 can thereby connect to one or more package repositories 144 hosting software packages including package updates, package manager software updates, and/or other software or resources.
  • Package manager 110 can also interact and/or communicate with set of installed software packages 112 and one or more package repositories 144 to initiate, configure, test, update, and/or otherwise manage set of installed software packages 112 operating on client 102. Package manager 110 can, for example, provide a user with a set of package update options 146 displayed via user interface 142, such as a graphical user interface or others, to select various test, configuration, and/or other management activities on set of installed software packages 112. For example, a user can select to initiate an update on one or more packages of set of installed software packages 112, install a new package update on client 102, or update an installed package manager software via user interface 142.
  • According to embodiments, package manager 110 can communicate with an update tool 104 hosted on client 102, to determine compatibility issues between updates to set of installed software packages 112 and an installed version of the package manager software. It should be appreciated that update tool 104 can be a standalone entity or resource, or can be integrated as part of package manager 110. In embodiments, update tool 104 can determine potential instabilities of resources on client 102 associated with unpacking and installing a new version of a package manager software. Update tool 104 can update client resources to alleviate the potential instabilities, such as, for example, by installing new application versions, software patches, and similar updates to resources.
  • In embodiments, update tool 104 can generate reports and notifications regarding a potential instability, one or more causes of the potential instability and categories thereof, or other conditions of package manager software update activities conducted on client 102. By determining the one or more causes of the potential instabilities, a user can be notified of future potential instabilities or other conditions that might be caused by updating a package manager software or other packages. Update tool 104 can record diagnostic information such as, for example, the one or more causes of the potential instabilities, origins of the one or more causes, and other data. Update tool 104 can also contain or access diagnostic logic to examine data generated or hosted by various resources, including set of installed software packages 112, operating system 136, or one or more repositories 144 to generate user notifications and other output to support and manage the updating of package manager software or other packages.
  • As illustrated, for example, more particularly in FIG. 2, package manager 110 can connect to one or more package repositories 144 via one or more networks 106. Package manager 110 can present and manage set of update options 146 to initiate and conduct download activity, for example to initiate the download of one or more package updates. According to embodiments, update tool 104 can interface with package manger 110 running a first version of package manager software. Further, update tool 104 can identify an update to one of set of installed software packages 112. Update tool 104 can inspect the package update for an indication that a second (or other) version of the package manager software needs to be installed on package manager 110 for the package update to be installed. In embodiments, the package update can be made available in one or more package repositories 144, and can be accessed and inspected by update tool 104 via network 106. Further, in embodiments, the package update can comprise associated metadata that can indicate a version requirement for the package manager software. For example, the metadata of the package update can indicate that the second version of the package manager software is required to install the package update.
  • Update tool 104, package manager 110 and/or other logic can facilitate the update of a software version of package manager 110 itself. For example, package manager 110, executing on the first version of a package manager software, can connect to one or more package repositories 144 to access, download, or otherwise obtain the second version of the package manager software. In embodiments, the second version of the package manager software can be encompassed in a software package. In embodiments, the second version of the package manager software can be one or more version numbers or iterations from the first version of the package manager software. For example, there can be multiple update versions of the package manager software that were released between the releases of the first version and the second version. Further, in embodiments, the systems and methods can be configured to unpack and install the most recent version of the package manager software that is also compatible with resources of or updates to set of installed software packages 112 on client 102. For example, if a version 10.0 of a package manager software is both available and compatible with updates to set of installed software packages 112, a version 9.5 that is compatible with the updates to set of installed software packages 112 but not available, and a version 9.0 of the package manager software is available but not compatible with the updates to set of installed software packages 112, then update tool 104, package manager 110, or other logic can access the version 10.0 for unpacking and installation on package manager 110.
  • Update tool 104 can, using the first version of the package manager software, unpack and install the second version of the package manager software on package manager 110. In embodiments, update tool 104 can remove files or data associated with the first version of the package manager software from package manager 110, client 102, or other components thereof. In response to unpacking and installing the second version of the package manager software, update tool 104 can install the update to the applicable one or more set of installed software packages 112 that require the second version of the package manager software.
  • In embodiments, update tool 104 and/or other logic can examine the second version of the package manager software to determine a set of resources on client 102 for which an update is necessary to support the second version of the package manager software. In embodiments, update tool 104 can examine metadata contained in the package received from the one or more package repositories 144 for indications of resource update information. Further, in embodiments, update tool 104 can determine the set of resources automatically by, for example, examining current and future dependencies between the package manager software and the set of resources.
  • Update tool 104 can update the determined set of resources on client 102. In embodiments, update tool 104 can retrieve files or data necessary for the update of the set of resources from the software package received from the one or more package repositories 144. In further embodiments, update tool 104 can retrieve files or data necessary for the update of the set of resources from local memory such as a database 116 or from a network location accessible by network 106. Further, in embodiments, update tool 104 can remove outdated files or data associated with the updated set of resources. In embodiments, flies or data associated with the updated set of resources can be removed at any point after updating the package manager software and/or the one or more set of installed software packages 112. In embodiments, update tool 104 and/or other logic can create and/or maintain an event log 154 to store update events on client 102. For example, event log 154 or other records may indicate an update to the software package manager, set of installed software packages 112, or one or more resources on client 102 necessary to support any associated updates.
  • In embodiments, update tool 104 can be configured to handle any failures in the accessing, unpacking, or installing of the second version of the package manager software or the update to the applicable one or more set of installed software packages 112. For example, update tool 104 can be configured to revert any resources associated with client 102 back to a previous state, such as the state that the resources were in prior to the update attempt. Further, update tool 104 can reinstall a prior version of a package manager software if an installation of a newer version of the package manager software fails. It should be appreciated that other failure handling mechanisms are envisioned, such as, for example, reverting only some, or none, of the resources associated with the client, and other mechanisms.
  • According to embodiments, update tool 104 and/or other logic can provide one or more notifications 152 to users of client 102. For example, notification 152 can contain an indication that a new version of the package manager software needs to be installed in order to update one or more set of installed software packages 112. Further, for example, notification 152 can contain information regarding which resources on client 102 need to be updated to support the second version of the package manager software. In embodiments, notification 152 can contain an indication of the success or failure of an update associated with the embodiments as described herein. Other types of conditions related to the state of client 102 and its resources, as well as set of installed software packages 112 and other resources, can be identified and reported to the user via one or more notifications 152.
  • According to other embodiments, update tool 104 can identify and generate notifications automatically, and/or, can generate notifications, updates, and/or other activity based on user configuration settings, such as selections to display or suppress the display of selected notifications, and/or to automatically perform selected update actions or other processes, as described herein. In embodiments, update tool 104 can generate one or more notifications 152 before, during, or after the update of the package manager software. When generating notifications, update tool 104 can access other data resources, such as database 116, that can contain for example monitored or recorded system data. According to embodiments, update tool 104 can utilize data stored in database 116 for use during future package manager software updates.
  • FIG. 3 illustrates a detailed exemplary system 300 comprising similar components to those of system 100 as described in accordance with FIGS. 1 and 2, in which systems and methods for determining when to update a package manager software can be implemented. System 300 can comprise client 102 and one or more package repositories 144, as described herein. Client 102 can comprise package manager 110, set of installed software packages 112, and update tool 104, as described herein. Update tool 104 or other logic can access one or more package repositories 144 via network 106, as described herein. One or more package repositories 144 can comprise one or more package updates 302 that can correspond to available updates to one or more of set of installed software packages 112. For example, if a package of set of installed software packages 112 has an update available, the update can be made available in one or more package repositories 144. In embodiments, update tool 104 or other logic can download one or more package updates 302 to client 102 before inspecting and/or accessing the contents.
  • One or more package updates 302 can each have a set of associated attributes. For example, as shown, the set of attributes can comprise a package ID, an update version number, and a required package manager version number. In embodiments, the package ID and the update version number can identify which package is to be updated and the associated version number of the update, respectfully. Further, in embodiments, the required package manager version number can specify the version of the package manager software that is required to update the package specified by the package ID. For example, if the current package manager software version is 2.0, there is a package installed on client 102 with an update available, and the required package manager version number of the available update specifies that version 3.0 of the package manager software version is required to install the update to the package, then the available update for the package cannot be installed on client 102 without first installing version 3.0 of the package manager software. In this example, if version 2.0 of the package manager software is installed on client 102, then update tool 104 can be configured to access version 3.0 of the package manager software from, for example, one or more package repositories 144 or other sources, unpack version 3.0, and install version 3.0 on package manager 110. After installation of version 3.0 on package manager 110, update tool 104 can access and install the available package update using version 3.0 of the package manager software.
  • FIG. 4 illustrates an exemplary diagram of hardware and other resources that can be incorporated in a client 102 configured to update a package manager software, one or more set of installed software packages 112, and other resources associated with package manager 110 and other components. As shown, client 102 can comprise a processor 130 communicating with memory 132, such as electronic random access memory, operating under control of or in conjunction with operating system 136. Operating system 136 can be, for example, a distribution of the Linux™ operating system, the Unix™ operating system, or other open-source or proprietary operating system or platform. Processor 130 also communicates with data store 138, such as a database stored on a local hard drive. Processor 130 can further communicate with a network interface 134, such as an Ethernet or wireless data connection, which in turn communicates with one or more networks 106, such as the Internet or other public or private networks. Processor 130 can also communicate with update tool 104, package manager 110, and/or other resources to execute control logic and control the updating, unpacking, installation, analysis and management of package manager software and their associated processes. Other configurations of client 102, including processor and memory resources, associated network connections, and other hardware and software resources are possible.
  • FIG. 5 illustrates overall processing to update a package manager software, according to various embodiments. In 502, processing can begin. In 504, a first version of a package manager software can be initiated on package manager 110 of client 102. In 506, the first version of the package manager software can be used to inspect an update to a package installed on client 102. In embodiments, the update to the package installed in client 102 can be inspected by extracting a required package manager version number from one or more package repositories 144 and/or another site or source. In 508, update tool 104 or other logic can determine that a second version of the package manager software is required to install the update to the package. In embodiments, the extracted required package manager version number of the update (here, the second version) can be compared to the installed version of the package manager software (here, the first version).
  • In 510, a user of client 102 can be notified that the package manager software needs to be updated. In embodiments, the user of client 102 can be notified via a communication, via an interface such as a graphical user interface (GUI), or via other methods. In embodiments, the user can provide approval to proceed with the updating of the package manager software. If the user does not provide approval, processing can proceed to end at 520. If the user provides approval, processing can proceed to 512, in which the first version of the package manager software can be used to access the second version of the package manager software. In embodiments, package manager 110 can access the second version of the package manager software from one or more package repositories 144. Further, in embodiments, the second version of the package manager software can be encompassed in a package.
  • In 514, the first version of the package manager software can be removed or uninstalled from package manger 110. In embodiments, prior versions or outdated files of other resources associated with the first version of the package manager software can be uninstalled or otherwise removed from client 102. In 516, the second version of the package manager software can be unpacked and installed on package manager 110 of client 102. In 518, the update to the package installed on the client can be installed using the second version of the package manager software. In embodiments, package manager 110 can access the update to the package from one or more package repositories 144. Further, in embodiments, the update to the package can be encompassed in the same package that contained the second version of the package manager software, or other packages.
  • In 520, one or more resources on client 102 can be updated. For example, the one or more resources can be used to support operation of or maintain compatibility with the second version of the package manager software or the updated package, and can be any hardware or software associated with client 102 such as, for example, an operating system, application, interface, memory, peripheral, media card, and other hardware or software. In embodiments, update tool 104 can facilitate the updating of the one or more resources. For example, update tool 104 can install a patch on an operating system of client 102. Further, for example, update tool 104 can communicate with a remote download server to download an update to an application installed on client 102 and install the update to the application. In 522, processing can return to a prior processing point, jump to a further processing point, or end.
  • The foregoing description is illustrative, and variations in configuration and implementation may occur to persons skilled in the art. For example, while embodiments have been described in which a unitary package manager 110 is configured to control package manager software update activity, in embodiments, multiple applications or software can interact to control the downloading, unpacking, installation, testing, and other management of package manager software updates. Further, while embodiments have been described in which a package manager software can be updated from one version to another, it should be understood that the systems and methods can replace one package manager with another package manager, such as, for example, replacing the “up2date” package manager available from Red Hat™, Inc. with the “yum” package manager available from Red Hat™, Inc. While embodiments have been described in which package manager software update activity is conducted on one client 102, in other embodiments, multiple local or remote targets, clients, and/or other machines can register to package manager 110 and/or other logic or resources to receive or perform package manager software update activity. Similarly, while embodiments have been described in which one diagnostic database 116 is accessed by update tool 104, package manager 110, and/or other logic to identify causes of potential faults or issues, in other embodiments, multiple diagnostic or debugging databases can be used. Other resources described as singular or integrated can in embodiments be plural or distributed, and resources described as multiple or distributed can in embodiments be combined. The scope of the present teachings is accordingly intended to be limited only by the following claims.

Claims (22)

1. A method of ensuring compatibility between a package manager software and an update to a package installed on a client, comprising:
inspecting, using a first version of the package manager software, requirements for the update to the package prior to installing the update to the package;
determining, based on the inspection, that a second version of the package manager software is required to install the update to the package; and
updating the package manager software from the first version to the second version prior to installing the update to the package.
2. The method of claim 1, further comprising installing, using the second version of the package manager software, the update to the package on the client.
3. The method of claim 1, wherein inspecting the requirements for the update to the package comprises extracting a version of the package manager software required to install the update to the package.
4. The method of claim 3, wherein determining that the second version of the package manager software is required to install the update to the package comprises comparing the extracted version with the first version of the package manager software.
5. The method of claim 1, wherein updating the package manager software from the first version to the second version comprises:
accessing, using the first version of the package manager software, a package comprising the second version of the package manager software;
removing the first version of the package manage software from the client; and
installing the second version of the package manager software on the client.
6. The method of claim 5, wherein the package further comprises files associated with installing the update to the package.
7. The method of claim 1, wherein the update to the package comprises an identification of dependencies of the package with the second version of the package manager software.
8. The method of claim 2, wherein the package manager software is updated and the update to the package is installed by an update tool associated with a package manager.
9. The method of claim 1, further comprising notifying a user of the client that the second version of the package manager software is required to install the update to the package.
10. The method of claim 1, wherein the second version of the package manager software is more than one iteration from the first version of the package manager software.
11. The method of claim 1, further comprising:
determining at least one resource on the client for which an update is necessary to support the second version of the package manager software; and
updating the determined at least one resource on the client.
12. A system for ensuring compatibility between a package manager software and an update to a package installed on a client, comprising:
an update tool that interfaces with a package manager; and
a processor configured to perform operations comprising:
communicating with the update tool;
inspecting, using a first version of the package manager software, requirements for the update to the package prior to installing the update to the package;
determining, based on the inspection, that a second version of the package manager software is required to install the update to the package; and
updating the package manager software from the first version to the second version prior to installing the update to the package.
13. The system of claim 12, wherein the processor is further configured to perform operations comprising installing, using the second version of the package manager software, the update to the package on the client.
14. The system of claim 12, wherein inspecting the requirements for the update to the package comprises extracting a version of the package manager software required to install the update to the package.
15. The system of claim 14, wherein determining that the second version of the package manager software is required to install the update to the package comprises comparing the extracted version with the first version of the package manager software.
16. The system of claim 12, wherein updating the package manager software from the first version to the second version comprises:
accessing, using the first version of the package manager software, a package comprising the second version of the package manager software;
removing the first version of the package manage software from the client; and
installing the second version of the package manager software on the client.
17. The system of claim 16, wherein the package further comprises files associated with installing the update to the package.
18. The system of claim 12, wherein the update to the package comprises an identification of dependencies of the package with the second version of the package manager software.
19. The system of claim 13, wherein the package manager software is updated and the update to the package is installed by an update tool associated with the package manager.
20. The system of claim 12, wherein the processor is further configured to perform operations comprising notifying a user of the client that the second version of the package manager software is required to install the update to the package.
21. The system of claim 12, wherein the second version of the package manager software is more than one iteration from the first version of the package manager software.
22. The system of claim 12, wherein the processor is further configured to perform operations comprising:
determining at least one resource on the client for which an update is necessary to support the second version of the package manager software; and
updating the determined at least one resource on the client.
US12/790,752 2010-05-28 2010-05-28 Determining when to update a package manager software Active 2032-05-22 US9417865B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/790,752 US9417865B2 (en) 2010-05-28 2010-05-28 Determining when to update a package manager software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/790,752 US9417865B2 (en) 2010-05-28 2010-05-28 Determining when to update a package manager software

Publications (2)

Publication Number Publication Date
US20110296398A1 true US20110296398A1 (en) 2011-12-01
US9417865B2 US9417865B2 (en) 2016-08-16

Family

ID=45023245

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/790,752 Active 2032-05-22 US9417865B2 (en) 2010-05-28 2010-05-28 Determining when to update a package manager software

Country Status (1)

Country Link
US (1) US9417865B2 (en)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110314463A1 (en) * 2010-06-17 2011-12-22 International Business Machines Corporation Method, Apparatus and Computer Program for Modifying an Application
US20120144248A1 (en) * 2010-12-02 2012-06-07 International Business Machines Corporation Guided problem resolution in deploying an application
US20120204167A1 (en) * 2011-02-03 2012-08-09 Nec Corporation Software management system
US20120290445A1 (en) * 2011-05-09 2012-11-15 Microsoft Corporation Delegated application authorization with inline purchase
US8392908B2 (en) * 2010-07-30 2013-03-05 Sap Ag Standardized procedures for implementing software changes
US8458346B2 (en) 2010-07-30 2013-06-04 Sap Ag Multiplexer for multi-tenant architectures
US8522070B2 (en) 2010-07-30 2013-08-27 Sap Ag Tenant rescue for software change processes in multi-tenant architectures
US20140101633A1 (en) * 2011-09-13 2014-04-10 Sonatype, Inc. Method and system for monitoring a software artifact
US20140129934A1 (en) * 2012-11-08 2014-05-08 Microsoft Corporation Dynamic model-based management tooling
US8850406B1 (en) * 2012-04-05 2014-09-30 Google Inc. Detecting anomalous application access to contact information
US9213536B2 (en) * 2012-04-23 2015-12-15 Business Objects Software Ltd. Method and architecture for automatic installation and self-updating of client-side computer software
US20160352585A1 (en) * 2015-05-28 2016-12-01 International Business Machines Corporation Computing resource license planning
US20170185391A1 (en) * 2011-08-10 2017-06-29 Ford Global Technologies, Llc Methods and apparatus for software updating
US20180074808A1 (en) * 2016-09-14 2018-03-15 U-Blox Ag Software update system, firmware over the air updating system and method of updating a client device
US9971594B2 (en) 2016-08-16 2018-05-15 Sonatype, Inc. Method and system for authoritative name analysis of true origin of a file
US20180219972A1 (en) * 2017-02-02 2018-08-02 Microsoft Technology Licensing, Llc Joint servicing of software packages
US10127034B1 (en) * 2015-09-24 2018-11-13 Amdocs Development Limited System, method, and computer program for delayed evaluation of condition based trees
US10209975B2 (en) * 2009-08-27 2019-02-19 Microsoft Technology Licensing, Llc Logical migration of applications and data
US10212225B2 (en) * 2014-12-23 2019-02-19 International Business Machines Corporation Synchronization of components in heterogeneous systems
US10540176B2 (en) 2015-11-25 2020-01-21 Sonatype, Inc. Method and system for controlling software risks for software development
US10810008B2 (en) * 2018-02-02 2020-10-20 Bank Of America Corporation Smart tool for enterprise-wide version control of codes during software integration and deployment
US10824521B2 (en) 2010-02-26 2020-11-03 Red Hat, Inc. Generating predictive diagnostics via package update manager
US11055199B2 (en) * 2018-02-02 2021-07-06 Bank Of America Corporation Smart tool for enterprise-wide software integration and deployment
CN113326059A (en) * 2020-02-28 2021-08-31 腾讯科技(深圳)有限公司 Resource updating method, device and storage medium
US20220179637A1 (en) * 2020-12-07 2022-06-09 Hitachi, Ltd. Version Checking Apparatus, Version Checking System, and Version Checking Method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10613849B2 (en) * 2016-09-23 2020-04-07 Visa International Service Association Update migration system and method

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353928B1 (en) * 1999-01-04 2002-03-05 Microsoft Corporation First run installer
US20040107349A1 (en) * 2002-12-03 2004-06-03 Marco Sasselli Method for securing software updates
US20040230971A1 (en) * 2003-05-16 2004-11-18 Appstream, Inc. Method and apparatus for packaging and streaming installation software
US6912711B1 (en) * 2000-05-25 2005-06-28 International Business Machines Corporation Method of applying an update to a contained collection of program and data files based upon versions
US20060059481A1 (en) * 2004-09-16 2006-03-16 Rodney Smith Presenting, delivering and installing electronic downloads with an installed list
US20080028385A1 (en) * 2006-07-26 2008-01-31 Dell Products L.P. Apparatus and Methods for Updating Firmware
US20090133014A1 (en) * 2007-11-16 2009-05-21 Nokia Corporation Methods, apparatuses and computer program product for automatic download of software dependencies on installation
US20090187901A1 (en) * 2006-02-27 2009-07-23 Kyocera Corporation Communication System, Communication Device, and Management Server Device
US20110138374A1 (en) * 2009-12-09 2011-06-09 Suprio Pal Downtime reduction for enterprise manager patching
US20110197175A1 (en) * 2010-02-05 2011-08-11 International Business Machines Corporation Automated application generation method and system

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438749B1 (en) 1999-03-03 2002-08-20 Microsoft Corporation Method and system for restoring a computer to its original state after an unsuccessful patch installation attempt
US7240336B1 (en) 2000-07-25 2007-07-03 Sci Systems, Inc. Interpretive simulation of software download process
US7458074B2 (en) 2001-03-30 2008-11-25 International Business Machiens Corporation Method and apparatus for installing and upgrading an application in a computer system
US20030051235A1 (en) 2001-09-07 2003-03-13 Simpson Mark D. Method and apparatus for verifying and analyzing computer software installation
JP2004005419A (en) 2002-03-25 2004-01-08 Canon Inc Install processing apparatus, processing method, storage medium, and program
US7191435B2 (en) 2002-06-07 2007-03-13 Sun Microsystems, Inc. Method and system for optimizing software upgrades
US7047448B2 (en) 2002-11-21 2006-05-16 Bitfone Corporation Software self-repair toolkit for electronic devices
US7249286B1 (en) 2003-03-24 2007-07-24 Network Appliance, Inc. System and method for automatically diagnosing protocol errors from packet traces
WO2005033964A1 (en) 2003-09-05 2005-04-14 Itron, Inc. Synchronizing and controlling software downloads, such as for utility meter-reading data collection and processing
US7624393B2 (en) 2003-09-18 2009-11-24 International Business Machines Corporation Computer application and methods for autonomic upgrade maintenance of computer hardware, operating systems and application software
US7676448B2 (en) 2004-03-12 2010-03-09 Microsoft Corporation Controlling installation update behaviors on a client computer
US7657885B2 (en) 2004-04-16 2010-02-02 Gateway, Inc. System and method for downloading software and services
US7512939B2 (en) 2004-10-05 2009-03-31 Neopost Technologies System and method of secure updating of remote device software
US7870547B2 (en) 2005-08-10 2011-01-11 Cisco Technology, Inc. Method and apparatus for managing patchable software systems
US8176483B2 (en) 2005-12-30 2012-05-08 Sap Ag Software maintenance management
US10104432B2 (en) 2006-12-01 2018-10-16 Time Warner Cable Enterprises Llc Methods and apparatus for software provisioning of a network device
US8813063B2 (en) 2006-12-06 2014-08-19 International Business Machines Corporation Verification of successful installation of computer software
US20080201705A1 (en) 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
EP2015173A1 (en) 2007-07-05 2009-01-14 Hewlett-Packard Development Company, L.P. Method of maintaining software updates by means of dependency expressions
US20090300595A1 (en) 2008-05-30 2009-12-03 Ise Corporation System and Method for Remotely Updating Control Software in a Vehicle With an Electric Drive System
US8291382B2 (en) 2008-07-22 2012-10-16 International Business Machines Corporation Maintenance assessment management
US20100058308A1 (en) 2008-08-29 2010-03-04 International Business Machines Corporation Central provider and satellite provider update and diagnosis integration tool
TW201011531A (en) 2008-09-03 2010-03-16 Asustek Comp Inc Computer system and related method of logging BIOS update operation
US20100083243A1 (en) 2008-09-29 2010-04-01 Synopsys, Inc. System and method for delivering software

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353928B1 (en) * 1999-01-04 2002-03-05 Microsoft Corporation First run installer
US6912711B1 (en) * 2000-05-25 2005-06-28 International Business Machines Corporation Method of applying an update to a contained collection of program and data files based upon versions
US20040107349A1 (en) * 2002-12-03 2004-06-03 Marco Sasselli Method for securing software updates
US7440571B2 (en) * 2002-12-03 2008-10-21 Nagravision S.A. Method for securing software updates
US20040230971A1 (en) * 2003-05-16 2004-11-18 Appstream, Inc. Method and apparatus for packaging and streaming installation software
US7735057B2 (en) * 2003-05-16 2010-06-08 Symantec Corporation Method and apparatus for packaging and streaming installation software
US20060059481A1 (en) * 2004-09-16 2006-03-16 Rodney Smith Presenting, delivering and installing electronic downloads with an installed list
US20090187901A1 (en) * 2006-02-27 2009-07-23 Kyocera Corporation Communication System, Communication Device, and Management Server Device
US20080028385A1 (en) * 2006-07-26 2008-01-31 Dell Products L.P. Apparatus and Methods for Updating Firmware
US20090133014A1 (en) * 2007-11-16 2009-05-21 Nokia Corporation Methods, apparatuses and computer program product for automatic download of software dependencies on installation
US20110138374A1 (en) * 2009-12-09 2011-06-09 Suprio Pal Downtime reduction for enterprise manager patching
US20110197175A1 (en) * 2010-02-05 2011-08-11 International Business Machines Corporation Automated application generation method and system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
UK International Keyboard Layout, March 24, 2009, 4 pages, [retrieved on 4/6/16], Retrieved from the Internet: <URL:https://web.archive.org/web/20090324151551/http://www.chiark.greenend.org.uk/~johns/kbukint.html> *
Uninstalling previous Version when installing New Version, Advanced Installer Forums, May 11, 2009, 4 pages, [retrieved on 4/8/16], Retrieved from the Internet: <URL:http://www.advancedinstaller.com/forums/viewtopic.php?t=9023> *

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10209975B2 (en) * 2009-08-27 2019-02-19 Microsoft Technology Licensing, Llc Logical migration of applications and data
US10642593B2 (en) * 2009-08-27 2020-05-05 Microsoft Technology Licensing, Llc Logical migration of applications and data
US10824521B2 (en) 2010-02-26 2020-11-03 Red Hat, Inc. Generating predictive diagnostics via package update manager
US8601462B2 (en) * 2010-06-17 2013-12-03 International Business Machines Corporation Modifying a multi-module application
US8607220B2 (en) * 2010-06-17 2013-12-10 International Business Machines Corporation Modifying a multi-module application
US20120204168A1 (en) * 2010-06-17 2012-08-09 International Business Machines Corporation Modifying a Multi-Module Application
US20110314463A1 (en) * 2010-06-17 2011-12-22 International Business Machines Corporation Method, Apparatus and Computer Program for Modifying an Application
US8392908B2 (en) * 2010-07-30 2013-03-05 Sap Ag Standardized procedures for implementing software changes
US8458346B2 (en) 2010-07-30 2013-06-04 Sap Ag Multiplexer for multi-tenant architectures
US8522070B2 (en) 2010-07-30 2013-08-27 Sap Ag Tenant rescue for software change processes in multi-tenant architectures
US8775862B2 (en) * 2010-07-30 2014-07-08 Sap Ag Tenant rescue for software change processes in multi-tenant architectures
US8612963B2 (en) * 2010-12-02 2013-12-17 International Business Machines Corporation Guided problem resolution in deploying an application
US20120144248A1 (en) * 2010-12-02 2012-06-07 International Business Machines Corporation Guided problem resolution in deploying an application
US20120204167A1 (en) * 2011-02-03 2012-08-09 Nec Corporation Software management system
US9021460B2 (en) * 2011-02-03 2015-04-28 Nec Corporation Software management system
US20120290445A1 (en) * 2011-05-09 2012-11-15 Microsoft Corporation Delegated application authorization with inline purchase
US10379837B2 (en) * 2011-08-10 2019-08-13 Ford Global Technologies, Llc Methods and apparatus for software updating
US20170185391A1 (en) * 2011-08-10 2017-06-29 Ford Global Technologies, Llc Methods and apparatus for software updating
US9678743B2 (en) * 2011-09-13 2017-06-13 Sonatype, Inc. Method and system for monitoring a software artifact
US20140101633A1 (en) * 2011-09-13 2014-04-10 Sonatype, Inc. Method and system for monitoring a software artifact
US8850406B1 (en) * 2012-04-05 2014-09-30 Google Inc. Detecting anomalous application access to contact information
US9213536B2 (en) * 2012-04-23 2015-12-15 Business Objects Software Ltd. Method and architecture for automatic installation and self-updating of client-side computer software
US20140129934A1 (en) * 2012-11-08 2014-05-08 Microsoft Corporation Dynamic model-based management tooling
US10673944B2 (en) * 2014-12-23 2020-06-02 International Business Machines Corporation Synchronization of components in heterogeneous systems
US10212225B2 (en) * 2014-12-23 2019-02-19 International Business Machines Corporation Synchronization of components in heterogeneous systems
US10972538B2 (en) 2014-12-23 2021-04-06 International Business Machines Corporation Synchronization of components in heterogeneous systems
US10075346B2 (en) * 2015-05-28 2018-09-11 International Business Machines Corporation Computing resource license planning
US20160352585A1 (en) * 2015-05-28 2016-12-01 International Business Machines Corporation Computing resource license planning
US10127034B1 (en) * 2015-09-24 2018-11-13 Amdocs Development Limited System, method, and computer program for delayed evaluation of condition based trees
US10540176B2 (en) 2015-11-25 2020-01-21 Sonatype, Inc. Method and system for controlling software risks for software development
US9971594B2 (en) 2016-08-16 2018-05-15 Sonatype, Inc. Method and system for authoritative name analysis of true origin of a file
CN109690478A (en) * 2016-09-14 2019-04-26 瑞士优北罗股份有限公司 Software update system, aerial firmware update system and the method for updating client terminal device
JP2019535060A (en) * 2016-09-14 2019-12-05 ユー−ブロックス、アクチエンゲゼルシャフトu−blox AG Software update system, firmware over-the-air update system, and method for updating client device
US10101990B2 (en) * 2016-09-14 2018-10-16 U-Blox Ag Software update system, firmware over the air updating system and method of updating a client device
WO2018050216A1 (en) * 2016-09-14 2018-03-22 U-Blox Ag Software update system, firmware over the air updating system and method of updating a client device
US20180074808A1 (en) * 2016-09-14 2018-03-15 U-Blox Ag Software update system, firmware over the air updating system and method of updating a client device
US10447814B2 (en) * 2017-02-02 2019-10-15 Microsoft Technology Licensing, Llc Joint servicing of software packages
US20180219972A1 (en) * 2017-02-02 2018-08-02 Microsoft Technology Licensing, Llc Joint servicing of software packages
US10810008B2 (en) * 2018-02-02 2020-10-20 Bank Of America Corporation Smart tool for enterprise-wide version control of codes during software integration and deployment
US11055199B2 (en) * 2018-02-02 2021-07-06 Bank Of America Corporation Smart tool for enterprise-wide software integration and deployment
CN113326059A (en) * 2020-02-28 2021-08-31 腾讯科技(深圳)有限公司 Resource updating method, device and storage medium
US20220179637A1 (en) * 2020-12-07 2022-06-09 Hitachi, Ltd. Version Checking Apparatus, Version Checking System, and Version Checking Method

Also Published As

Publication number Publication date
US9417865B2 (en) 2016-08-16

Similar Documents

Publication Publication Date Title
US9417865B2 (en) Determining when to update a package manager software
US10824521B2 (en) Generating predictive diagnostics via package update manager
US8209564B2 (en) Systems and methods for initiating software repairs in conjunction with software package updates
US9116802B2 (en) Diagnostic notification via package update manager
JP5535484B2 (en) Automated software testing framework
US8954930B2 (en) System and method for reducing test effort by object risk analysis
US9274811B1 (en) System and method for cloud provisioning and application deployment
US8365164B1 (en) Portable software applications
US9916227B2 (en) Systems and methods for analyzing software compatibility
US8166458B2 (en) Method and system for automated distributed software testing
US8381036B2 (en) Systems and methods for restoring machine state history related to detected faults in package update process
US8918783B2 (en) Managing virtual computers simultaneously with static and dynamic dependencies
US20050022176A1 (en) Method and apparatus for monitoring compatibility of software combinations
US20070204262A1 (en) Facilitating the automated testing of daily builds of software
US20060271924A1 (en) Method and apparatus for automating updates to dependencies
US20070288903A1 (en) Automated treatment of system and application validation failures
US20110088036A1 (en) Automated Administration Using Composites of Atomic Operations
US9542173B2 (en) Dependency handling for software extensions
US9256509B1 (en) Computing environment analyzer
US9342784B1 (en) Rule based module for analyzing computing environments
US9760364B2 (en) Checks for software extensions
JP2019040400A (en) Installation control program, installation control method, and information processing device
US20210311766A1 (en) Validation and pre-check of combined software/firmware updates
US20120131569A1 (en) Automated solaris container creation
US9477447B1 (en) Semantic representations of software extensions

Legal Events

Date Code Title Description
AS Assignment

Owner name: RED HAT, INC., NORTH CAROLINA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VIDAL, SETH KELBY;ANTILL, JAMES;REEL/FRAME:024639/0971

Effective date: 20100624

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8