Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I list packages whose binaries are installed in $GOBIN?

Tags:

go

go-modules

If I understand correctly, go install puts binaries in $GOBIN directory.

I tend to forget which packages provide which binaries in $GOBIN and which packages I go install-ed.

Is there a way to list packages that are currently go install-ed?

I could, obviously, do ls $GOBIN and that'll give me names of binaries. However, I'm looking for a way to get a list of packages with their long names, e.g. github.com/operator-framework/operator-sdk.

Update: go list ... (suggested here) does not seem to apply to my case because this command expects me to be in a directory containing go.mod file. I understand that go list is designated for listing packages of a project. In my case, I need to find out all packages that are installed into $GOBIN of my system/user.

like image 418
Mike Avatar asked Jul 16 '21 13:07

Mike


People also ask

Where are installed binaries?

Much like the previous behaviour of go get , go install places binaries in $GOPATH/bin , or in $GOBIN if set. See the “Setting up your PATH “ section in Installing Go to ensure your PATH is set correctly.

How do I see what packages are installed in go?

To list packages in your workspace, go to your workspace folder and run this command: go list ./... ./ tells to start from the current folder, ... tells to go down recursively.

Where are go modules installed?

All downloaded modules are cached locally in your $GOPATH/pkg/mod directory by default. If you import a package to your project without downloading it first using go get , the latest tagged version of the module providing that package will be installed automatically and added to your go.

How do you use go GET command?

Go The Go Command Go Getgo get downloads the packages named by the import paths, along with their dependencies. It then installs the named packages, like 'go install'. Get also accepts build flags to control the installation. When checking out a new package, get creates the target directory $GOPATH/src/<import-path> .

How do I list all installed packages in Debian?

List installed packages in Debian, Ubuntu using apt command Apt provides a high-level command line interface for the package management system in Debian, Ubuntu and other Debian-based systems. To display the list of installed packages in Debian, Ubuntu, Linux Mint and other DEB-based systems, run: $ apt list --installed

How to list all installed packages with version and details using dpkg?

Dpkg is a command line tool to install, build, remove and manage Debian packages. To list all installed packages with versions and details using dpkg command, run: Alternatively, you can use dpkg-query command to list all installed Debian packages.

How do I list all pip-installed packages in Linux?

You can list all pip-installed packages by running the following command: pip freeze The output is a list of packages and their versions installed in the current environment.

Where can I find a list of all packages and dependencies?

For a complete list of all packages and dependencies (including OS-level and transitive dependencies, as well as shared libraries), you can use the Web GUI, which provides a full Bill of Materials view. Give it a try by signing up for a free ActiveState Platform account.


Video Answer


1 Answers

For each binary in $GOBIN, you can use go version -m to show information about the version of Go and the module versions that were used to build that binary. For example, here's go version -m ~/go/bin/goimports for me.

$ go version -m ~/go/bin/goimports
/Users/jayconrod/go/bin/goimports: go1.15.2
    path    golang.org/x/tools/cmd/goimports
    mod golang.org/x/tools  v0.0.0-20200910165216-53e29e9d1252  h1:qn28WK3EvdJOSlyZFNeWnaEX8X5GiQv+8mrw9mYrXko=
    dep golang.org/x/mod    v0.3.0  h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
    dep golang.org/x/xerrors    v0.0.0-20200804184101-5ec99f83aff1  h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=

The path line shows the name of the main package that was installed. Looks like I need to update it.

$ go install golang.org/x/tools/cmd/goimports@latest
$ go version -m ~/go/bin/goimports
/Users/jayconrod/go/bin/goimports: go1.17rc1
    path    golang.org/x/tools/cmd/goimports
    mod golang.org/x/tools  v0.1.5  h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
    dep golang.org/x/mod    v0.4.2  h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
    dep golang.org/x/sys    v0.0.0-20210510120138-977fb7262007  h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE=
    dep golang.org/x/xerrors    v0.0.0-20200804184101-5ec99f83aff1  h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
like image 72
Jay Conrod Avatar answered Oct 21 '22 15:10

Jay Conrod