package install

import "github.com/containerd/containerd/v2/cmd/ctr/commands/install"

Index

Variables

var Command = &cli.Command{
	Name:        "install",
	Usage:       "Install a new package",
	ArgsUsage:   "<ref>",
	Description: "install a new package",
	Flags: []cli.Flag{
		&cli.BoolFlag{
			Name:    "libs",
			Aliases: []string{"l"},
			Usage:   "Install libs from the image",
		},
		&cli.BoolFlag{
			Name:    "replace",
			Aliases: []string{"r"},
			Usage:   "Replace any binaries or libs in the opt directory",
		},
		&cli.StringFlag{
			Name:  "path",
			Usage: "Set an optional install path other than the managed opt directory",
		},
	},
	Action: func(cliContext *cli.Context) error {
		client, ctx, cancel, err := commands.NewClient(cliContext)
		if err != nil {
			return err
		}
		defer cancel()
		ref := cliContext.Args().First()
		image, err := client.GetImage(ctx, ref)
		if err != nil {
			return err
		}
		var opts []containerd.InstallOpts
		if cliContext.Bool("libs") {
			opts = append(opts, containerd.WithInstallLibs)
		}
		if cliContext.Bool("replace") {
			opts = append(opts, containerd.WithInstallReplace)
		}
		if path := cliContext.String("path"); path != "" {
			opts = append(opts, containerd.WithInstallPath(path))
		}
		return client.Install(ctx, image, opts...)
	},
}

Command to install binary packages

Source Files

install.go

Version
v2.1.3 (latest)
Published
Jun 19, 2025
Platform
linux/amd64
Imports
3 packages
Last checked
5 days ago

Tools for package owners.