# US 10,503,486 B2 · Methods and apparatus to reduce application deployments sizes

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,486 B2
- Document ID: US10503486B2
- Status: Granted
- Kind: B2
- Application number: 15/374,743
- Filed: 2016-12-09
- Published: 2018-06-14
- Granted: 2019-12-10
- Earliest claimed: 2016-12-09
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: George Dimitrov; Alexander Stoyanov; Miroslav Mitevski; Rostislav Georgiev
- Web page: https://patentgrep.com/patent/US10503486B2

## CPC

- G06F 8/60: Software deployment
- G06F 8/54: Link editing before load time
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and apparatus to reduce application deployment sizes are disclosed. An example apparatus includes a build generator to generate a build profile associated with a virtual appliance in a virtualization environment, the build profile including a plurality of application components including archive files associated with the virtual appliance. The example apparatus also includes a duplicate identifier to determine when a first library and a second library included in the build profile are duplicate libraries, the first library associated with a first filename and a first data portion and the second library associated with a second filename and a second data portion. The example apparatus also includes a duplicate remover to, in response to a determination that the first library and the second library are duplicate libraries, replace the first filename with a hard link to the second data portion to update the build profile.

## Claims

### Claim 1

An apparatus comprising:
a computing device comprising a processor and memory;
a build generator, executed by the computing device, to generate a build profile associated with a virtual appliance in a virtualization environment, the build profile including a plurality of application components including archive files associated with the virtual appliance, wherein the build profile occupies a first file size in the memory;
a duplicate identifier, executed by the computing device, to determine when a first library and a second library included in the build profile are duplicate libraries, the first library associated with a first filename and a first data portion and the second library associated with a second filename and a second data portion; and
a duplicate remover, executed by the computing device, in response to a determination that the first library and the second library are duplicate libraries, to replace the first filename with a hard link to the second data portion to update the build profile, wherein the duplicate remover removes the first library from the build profile while maintaining a folder structure of the virtual appliance, and the update to the build profile occupies a second file size in the memory that is smaller than the first file size.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the duplicate identifier is to determine whether the first library and the second library are duplicate libraries by comparing a first library file size associated with the first library and a second library file size associated with the second library.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein the duplicate identifier is to:
generate a first checksum value associated with the first library and generate a second checksum value associated with the second library when the first library file size and the second library file size are non-unique values; and
compare the first checksum value with the second checksum value to determine whether the first library and second library are duplicate libraries.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the duplicate identifier is to determine whether the first library and the second library are duplicate libraries by comparing a first checksum value associated with the first library and a second checksum value associated with the second library.

### Claim 5 (depends on 1)

The apparatus of claim 1, further including a package builder to generate a distribution package based on the updated build profile.

### Claim 6 (depends on 5)

The apparatus of claim 5, wherein the distribution package is an open virtualization format archive file when the build profile is associated with a new install of the virtual appliance.

### Claim 7 (depends on 5)

The apparatus of claim 5, wherein the distribution package is a Red Hat package manager file when the build profile is associated with an update of the virtual appliance.

### Claim 8

A non-transitory computer readable storage medium comprising instructions that when executed, cause a machine to implement at least:
a build generator to generate a build profile associated with a virtual appliance in a virtualization environment, the build profile including a plurality of application components including archive files associated with the virtual appliance, wherein the build profile occupies a first file size in memory;
a duplicate identifier to determine when a first library and a second library included in the build profile are duplicate libraries, the first library associated with a first filename and a first data portion and the second library associated with a second filename and a second data portion; and
a duplicate remover to, in response to a determination that the first library and the second library are duplicate libraries, replace the first filename with a hard link to the second data portion to update the build profile, wherein the duplicate remover removes the first library from the build profile while maintaining a folder structure of the virtual appliance, and the update to the build profile occupies a second file size in the memory that is smaller than the first file size.

### Claim 9 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the instructions, when executed, cause the duplicate identifier to determine whether the first library and the second library are duplicate libraries by comparing a first library file size associated with the first library and a second library file size associated with the second library.

### Claim 10 (depends on 9)

The non-transitory computer readable storage medium of claim 9, wherein the duplicate identifier is to:
generate a first checksum value associated with the first library and generate a second checksum value associated with the second library when the first library file size and the second library file size are non-unique values; and
compare the first checksum value with the second checksum value to determine whether the first library and second library are duplicate libraries.

### Claim 11 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the instructions, when executed, cause the duplicate identifier to determine whether the first library and the second library are duplicate libraries by comparing a first checksum value associated with the first library and a second checksum value associated with the second library.

### Claim 12 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the instructions, when executed, further cause the machine to implement a package builder to generate a distribution package based on the updated build profile.

### Claim 13

A method comprising:
generating, by executing an instruction with at least one processor, a build profile associated with a virtual appliance in a virtualization environment, the build profile including a plurality of application components including archive files associated with the virtual appliance, wherein the build profile occupies a first file size in memory;
determining, by executing an instruction with the at least one processor, when a first library and a second library included in the build profile are duplicate libraries, the first library associated with a first filename and a first data portion and the second library associated with a second filename and a second data portion;
in response to determining that the first library and the second library are duplicate libraries, replacing, by executing an instruction with the at least one processor, the first filename with a hard link to the second data portion to update the build profile; and
removing, by executing an instruction with the at least one processor, the first library from the build profile while maintaining a folder structure of the virtual appliance, wherein removing the first data portion causes the build profile to occupy a second file in the memory that is smaller than the first file size.

### Claim 14 (depends on 13)

The method of claim 13, wherein determining when the first library and the second library are duplicate libraries includes comparing a first library file size associated with the first library and a second library file size associated with the second library.

### Claim 15 (depends on 14)

The method of claim 14, further including:
generating a first checksum value associated with the first library and generating a second checksum value associated with the second library when the first library file size and the second library file size are non-unique values; and
comparing the first checksum value with the second checksum value to determine whether the first library and second library are duplicate libraries.

### Claim 16 (depends on 13)

The method of claim 13, wherein determining when the first library and the second library are duplicate libraries includes comparing a first checksum value associated with the first library and a second checksum value associated with the second library.

### Claim 17 (depends on 13)

The method of claim 13, further including extracting the archive files included in the build profile.

### Claim 18 (depends on 13)

The method of claim 13, further comprising, in response to removing the first library from the build profile, generating a distribution package based on the build profile.

### Claim 19 (depends on 18)

The method of claim 18, wherein the distribution package is an open virtualization format archive file when the build profile is associated with a new install of the virtual appliance.

### Claim 20 (depends on 18)

The method of claim 18, wherein the distribution package is a Red Hat package manager file when the build profile is associated with an update of the virtual appliance.
