setup-cpp/packages/setup-apt/README.md

268 lines
5.4 KiB
Markdown
Raw Normal View History

<h1 align="center">setup-apt</h1>
<p>
2024-08-24 06:20:37 +08:00
<a href="https://www.npmjs.com/package/setup-apt" target="_blank">
<img alt="Version" src="https://img.shields.io/npm/v/setup-apt.svg">
</a>
<img src="https://img.shields.io/badge/node-%3E%3D12-blue.svg" />
<a href="#" target="_blank">
<img alt="License: Apache--2.0" src="https://img.shields.io/badge/License-Apache--2.0-yellow.svg" />
</a>
</p>
> Setup apt packages and repositories in Debian/Ubuntu-based distributions
## Install
```sh
npm install --save setup-apt
```
## Usage
<!-- INSERT GENERATED DOCS START -->
### `updateAptAlternatives` (function)
Update the alternatives for a package
**Parameters:**
- name (`string`) - The name of the package
- path (`string`) - The path to the binary
- priority (`number`) - The priority of the alternative (Defaults to `40`)
**returns:** Promise<void>
### `addUpdateAlternativesToRc` (function)
Add the update-alternatives command to the rc file
**Parameters:**
- name (`string`) - The name of the package
- path (`string`) - The path to the binary
- rcOptions (`RcOptions`) - The options for the rc file to add the update-alternatives command to
- priority (`number`) - The priority of the alternative (Defaults to `40`)
**returns:** Promise<void>
### `getAptEnv` (function)
Get the environment variables to use for the apt command
**Parameters:**
- apt (`string`) - The apt command to use
**returns:** ProcessEnv
### `aptTimeout` (variable)
The timeout to use for apt commands
Wait up to 300 seconds if the apt-get lock is held
### `hasNala` (function)
Check if nala is installed
**returns:** boolean
### `getApt` (function)
Get the apt command to use
If nala is installed, use that, otherwise use apt-get
**returns:** string
### `isAptPackInstalled` (function)
Check if a package is installed
**Parameters:**
- pack (`string`) - The package to check
**returns:** Promise<boolean>
### `isAptPackRegexInstalled` (function)
Check if a package matching a regexp is installed
**Parameters:**
- regexp (`string`) - The regexp to check
**returns:** Promise<boolean>
### `updatedRepos` (variable)
### `updateAptRepos` (function)
Update the apt repositories
**Parameters:**
- apt (`string`) - The apt command to use (optional)
**returns:** void
### `updateAptReposMemoized` (variable)
Update the apt repositories (memoized)
**Parameters:**
- apt - The apt command to use (optional)
### `filterAndQualifyAptPackages` (function)
Filter out the packages that are already installed and qualify the packages into a full package name/version
**Parameters:**
- packages (`AptPackage[]`)
- apt (`string`)
**returns:** Promise<string[]>
### `qualifiedNeededAptPackage` (function)
Qualify the package into full package name/version.
If the package is not installed, return the full package name/version.
If the package is already installed, return undefined
**Parameters:**
- pack (`AptPackage`)
- apt (`string`)
**returns:** Promise<string>
### `initApt` (function)
Install gnupg and certificates (usually missing from docker containers)
**Parameters:**
- apt (`string`)
**returns:** Promise<void>
### `initAptMemoized` (variable)
Install gnupg and certificates (usually missing from docker containers) (memoized)
### `addAptRepository` (function)
**Parameters:**
- repo (`string`)
- apt (`string`)
**returns:** Promise<void>
### `installAddAptRepo` (function)
**Parameters:**
- apt (`string`)
**returns:** Promise<void>
### `InstallationInfo` (type)
The information about an installation result
### `AptPackage` (type)
The information about an apt package
### `installAptPack` (function)
Install a package using apt
**Parameters:**
- packages (`AptPackage[]`) - The packages to install (name, and optional info like version and repositories)
- update (`boolean`) - Whether to update the package list before installing (Defaults to `false`)
**returns:** Promise<InstallationInfo>
```ts
await installAptPack([{ name: "ca-certificates" }, { name: "gnupg" }])
```
```ts
await installAptPack([
{
name: "gcc",
version,
repository: "ppa:ubuntu-toolchain-r/test",
key: { key: "1E9377A2BA9EF27F", fileName: "ubuntu-toolchain-r-test.gpg" },
},
])
```
### `AddAptKeyOptions` (type)
### `addAptKey` (function)
Add an apt key
**Parameters:**
- options (`AddAptKeyOptions`) - The options for adding the key
**returns:** Promise<string>
```ts
await addAptKey({ key: "3B4FE6ACC0B21F32" fileName: "bazel-archive-keyring.gpg"})
```
```ts
await addAptKey({
keyUrl: "https://bazel.build/bazel-release.pub.gpg",
fileName: "bazel-archive-keyring.gpg",
})
```
### `defaultKeyStorePath` (variable)
### `KeyServerOptions` (type)
### `defaultKeyServer` (variable)
### `addAptKeyViaServer` (function)
Add an apt key via a keyserver
**Parameters:**
- { key, keyServer = defaultKeyServer, fileName, keyStorePath = defaultKeyServer } (`KeyServerOptions`)
**returns:** Promise<string>
### `KeyUrl` (type)
### `addAptKeyViaURL` (function)
Add an apt key via a download
**Parameters:**
- options - The options for adding the key
- { keyUrl, fileName, keyStorePath = defaultKeyStorePath } (`KeyUrl`)
**returns:** Promise<string>
<!-- INSERT GENERATED DOCS END -->
## 🤝 Contributing
You can sponsor my work here:
https://github.com/sponsors/aminya
Pull requests, issues and feature requests are welcome.
See the [Contributing guide](https://github.com/aminya/setup-cpp/blob/master/CONTRIBUTING.md).