diff --git a/clientupdate/clientupdate.go b/clientupdate/clientupdate.go index b42d912a9..9f1bc441f 100644 --- a/clientupdate/clientupdate.go +++ b/clientupdate/clientupdate.go @@ -911,7 +911,7 @@ func (up *Updater) updateLinuxBinary() error { func (up *Updater) downloadLinuxTarball(ver string) (string, error) { dlDir, err := os.UserCacheDir() if err != nil { - return "", err + dlDir = os.TempDir() } dlDir = filepath.Join(dlDir, "tailscale-update") if err := os.MkdirAll(dlDir, 0700); err != nil { diff --git a/ipn/ipnlocal/c2n.go b/ipn/ipnlocal/c2n.go index e5510e2b9..d95c3e7cc 100644 --- a/ipn/ipnlocal/c2n.go +++ b/ipn/ipnlocal/c2n.go @@ -305,9 +305,12 @@ func findCmdTailscale() (string, error) { } switch runtime.GOOS { case "linux": - if self == "/usr/sbin/tailscaled" { + if self == "/usr/sbin/tailscaled" || self == "/usr/bin/tailscaled" { return "/usr/bin/tailscale", nil } + if self == "/usr/local/sbin/tailscaled" || self == "/usr/local/bin/tailscaled" { + return "/usr/local/bin/tailscale", nil + } return "", errors.New("tailscale not found in expected place") case "windows": dir := filepath.Dir(self)