명령줄을 사용하여 Linux에서 Go 도구를 제거하는 방법은 무엇입니까?

명령줄을 사용하여 Linux에서 Go 도구를 제거하는 방법은 무엇입니까?

설치 cf해서 사용했어요

go get github.com/xalanq/cf-tool
cd $GOPATH/src/github.com/xalanq/cf-tool
go build -ldflags "-s -w" cf.go

cf --version
output: Codeforces Tool (cf) v1.0.0

다음을 사용하여 제거해 보았습니다.

sudo apt-get --purge remove Codeforces\ Tool && sudo apt-get autoremove

그리고

sudo apt-get --purge remove cf && sudo apt-get autoremove

하지만 다음과 같은 오류가 발생했습니다.

E: Unable to locate package Codeforces Tool

그리고

E: Unable to locate package cf

하지만 제거 방법에 오류가 표시됩니다.

답변1

apt설치된 소프트웨어 만 제거할 수 있습니다 apt. 다른 방법을 사용하여 소프트웨어를 설치한 경우 apt소프트웨어를 제거할 수 없으며 시스템에서 소프트웨어를 제거하려면 다른 방법을 사용해야 합니다.

예를 들어 Go 소프트웨어 인프라 apt는 별개이며 바이너리 및 기타 파일은 설치 프로그램 go get이나 Go에서 어떤 방식 go install으로도 인식되지 않습니다 apt.

cf-tool항목을 제거하려면 $GOPATH시도해 볼 수 있습니다.

go clean -x -i

모듈 디렉토리에서 $GOPATH/src/github.com/xalanq/cf-tool이것은 일반적으로 프로젝트의 소스 디렉토리에서 제거하는 방법입니다 go install. 그러나 약간 오래된 버전의 Go 언어 도구를 실행하고 있는 것 같아서 이것이 작동하는지 모르겠습니다(참고자료 참조 go help clean). .

파일 삭제 rm도 가능합니다(질문에서 언급한 경로 이름 사용).

rm -r "$GOPATH/src/github.com/xalanq/cf-tool"
rm "$GOPATH/bin/cf"

그러나 내 Go 버전의 시스템에서는 (즉 , 설치 하지 않고 go1.21.0사용한다는 의미 ) 경로와 파일 이름은 다음과 같습니다.go installgo getcf상당히다른:

rm -r "${GOPATH:-$HOME/go}/pkg/mod/github.com/xalanq/[email protected]"
rm "${GOPATH:-$HOME/go}/bin/cf-tool"

간단히 말해서 rm실행 파일과 모듈 디렉터리를 삭제하는 데 사용됩니다.

답변2

명령 이름은 단지 cf입력하기 쉽도록 하기 위한 것이지만 패키지 이름은 더 길 수도 있습니다. 또는 도구가 *.deb패키지에서 전혀 설치되지 않을 수도 있습니다.

첫 번째 실행은 dpkg-query -S $(which cf)실제 패키지 이름을 찾으려고 시도합니다. 출력이 없으면 cf패키지 관리자를 사용하여 도구가 설치되지 않은 것입니다.개발자가 단일 실행 파일로 제공하는 것으로 보입니다.$PATH의 디렉토리에 넣으면 됩니다. 그런 식으로 설치한 경우 제거하려면 삭제하세요.

관련 정보