Software container format
Abstract
A system for building a package with a deterministic identifier for selective software component installation comprises an interface and a processor. The interface is to receive package configuration information. The processor is to retrieve build resources; determine a deterministic package identifier based at least in part on the build resources; build a package based at least in part on the package configuration information using the build resources; and provide the package. The package includes the deterministic package identifier. A selected software component from the package is installed on a target system.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A system for building a package with a deterministic identifier for selective software component installation, comprising:
an interface to:
receive package configuration information; and
a processor to:
retrieve build resources;
determine a deterministic package identifier based at least in part on the build resources, wherein determining the deterministic package identifier comprises:
determining a set of hashes, wherein each hash of the set of hashes comprises a hash of a build resource of the build resources,
creating a dictionary of the set of hashes,
determining a serialization by serializing the dictionary in a deterministic way, and
determining the deterministic package identifier by computing a hash of the serialization;
build a package based at least in part on the package configuration information using the build resources; and
provide the package, wherein the package includes the deterministic package identifier, wherein a selected software component from the package is installed on a target system.
2. The system of claim 1 , wherein the package configuration information comprises a build script.
3. The system of claim 1 , wherein the package configuration information comprises a build information file.
4. The system of claim 1 , wherein build resources comprise source code.
5. The system of claim 1 , wherein build resources comprise libraries.
6. The system of claim 1 , wherein the processor is further to:
determine whether build resources are available; and
in the event build resources are not available:
provide an error message and end the process.
7. The system of claim 1 , wherein the processor is further to prepare a build environment for building the package.
8. The system of claim 7 , wherein preparing a build environment comprises creating a new container environment.
9. The system of claim 7 , wherein preparing a build environment comprises removing previous build artifacts and source code from a container environment.
10. The system of claim 7 , wherein preparing a build environment comprises installing libraries and source code into a container environment.
11. The system of claim 7 , wherein package software is built within the build environment.
12. The system of claim 11 , wherein the package is created by copying the package software out of the build environment and packaging the package software.
13. The system of claim 1 , wherein the processor is further to:
determine whether building the package succeeded; and
in the event building the package did not succeed:
provide an error message and end the process.
14. The system of claim 1 , wherein the deterministic package identifier is determined based at least in part on a hash of the build resources.
15. The system of claim 1 , wherein the package is provided to an installation server.
16. The system of claim 1 , wherein the target system is associated with a role.
17. The system of claim 16 , wherein the selected software component is installed based at least in part on the role.
18. The system of claim 1 , wherein installing the selected software component comprises installing selected directory locations from the package.
19. The system of claim 1 , wherein in the event that the software component fails, the software component is reverted to a previous version of the package.
20. The system of claim 1 , wherein installing the selected software component comprises checking the deterministic package identifier to verify that the package comprises the correct package version.
21. A method for building a package with a deterministic identifier for selective software component installation, comprising:
receiving, by a processor, package configuration information;
retrieving, by the processor, build resources;
determining, by the processor, a deterministic package identifier based at least in part on the build resources, wherein determining the deterministic package identifier comprises:
determining a set of hashes, wherein each hash of the set of hashes comprises a hash of a build resource of the build resources,
creating a dictionary of the set of hashes,
determining a serialization by serializing the dictionary in a deterministic way, and
determining the deterministic package identifier by computing a hash of the serialization;
building, by the processor, a package based at least in part on the package configuration information using the build resources; and
providing, by the processor, the package and the deterministic package identifier, wherein a selected software component is installed based at least in part on the deterministic package identifier using the package.
22. A computer program product for building a package with a deterministic identifier for selective software component installation, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
receiving package configuration information;
retrieving build resources;
determining a deterministic package identifier based at least in part on the build resources, wherein determining the deterministic package identifier comprises:
determining a set of hashes, wherein each hash of the set of hashes comprises a hash of a build resource of the build resources,
creating a dictionary of the set of hashes,
determining a serialization by serializing the dictionary in a deterministic way, and
determining the deterministic package identifier by computing a hash of the serialization;
building a package based at least in part on the package configuration information using the build resources; and
providing the package and the deterministic package identifier, wherein a selected software component is installed based at least in part on the deterministic package identifier using the package.Join the waitlist — get patent alerts
Track US9823915B1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.