my os is Kali.First i enter go,shell told me go command not found
└─$ go
Command 'go' not found, but can be installed with:
sudo apt install gccgo-go
sudo apt install golang-go
so i sudo apt install golang-go and it told me golang-go is already latest version,but go was still not found.And i google to knows sometime it will have a floder /usr/local/go but it not have one.
┌──(highway㉿highway)-[/usr/local]
└─$ ll
drwxr-xr-x 2 root root 4096 5月 16 13:27 bin
drwxr-xr-x 2 root root 4096 2月 8 01:26 etc
drwxr-xr-x 2 root root 4096 2月 8 01:26 games
drwxr-xr-x 2 root root 4096 2月 8 01:26 include
drwxr-xr-x 5 root root 4096 4月 23 17:28 lib
lrwxrwxrwx 1 root root 9 4月 23 17:28 man -> share/man
drwxr-xr-x 3 root root 4096 4月 24 08:09 samba
drwxr-xr-x 2 root root 4096 2月 8 01:26 sbin
drwxr-xr-x 7 root root 4096 4月 24 08:09 share
drwxr-xr-x 2 root root 4096 2月 8 01:26 src
so i locate go and find /usr/lib/go and cd /usr/lib/go/bin
┌──(highway㉿highway)-[/usr/lib/go]
└─$ ls
api bin doc misc pkg src test VERSION
┌──(highway㉿highway)-[/usr/lib/go/bin]
└─$ ll
-rwxr-xr-x 1 root root 10225816 5月 15 03:22 go
-rwxr-xr-x 1 root root 2281848 5月 15 03:22 gofmt
┌──(highway㉿highway)-[/usr/lib/go/bin]
└─$ ./go version
go version go1.18.2 linux/amd64
┌──(highway㉿highway)-[/usr/lib/go/bin]
└─$ ./go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/highway/.cache/go-build"
GOENV="/home/highway/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/highway/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/highway/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/lib/go-1.18"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go-1.18/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.18.2"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3356979286=/tmp/go-build -gno-record-gcc-switches"
it work,but why go is still not found?
┌──(highway㉿highway)-[/usr/lib/go/bin]
└─$ go
Command 'go' not found, but can be installed with:
sudo apt install gccgo-go
sudo apt install golang-go
what different between floder /usr/lib/go/bin and /usr/local/go?if there were not different what can i do to use go instead of cd /usr/lib/go/bin && ./go.
You need to append go's bin directory to your PATH environment variable. Add this line at the end of ~/.bashrc:
export PATH=$PATH:/usr/lib/go/bin
An alternative to #emilianolch solution is to create symlinks in /usr/local/bin. And you properly want all the binaries in /usr/lib/go/bin linked, so:
sudo ln -s /usr/lib/go/bin/* /usr/lib/bin/
Should work right away without restarting terminal.
PRO: Go binaries appear as they are like other distro. May work better with other tools like VS Code SSH Remote.
CON: Have to ln again if more Go tools are installed via apk in future. (Only new ones, not needed if reinstalling/upgrading existing ones)
Related
I check for the existence of installed tools via shutil.which()
Both tools are installed via apt get install ffmpeg mediainfo and their binaries are located in /usr/bin with the same file flags and ownership in the host system:
lala#lala:/usr/bin$ ls -la ff*
-rwxr-xr-x 1 root root 301544 May 19 2022 ffmpeg
-rwxr-xr-x 1 root root 22920 Feb 14 2022 ffmpegthumbnailer
-rwxr-xr-x 1 root root 149984 May 19 2022 ffplay
-rwxr-xr-x 1 root root 178832 May 19 2022 ffprobe
lala#lala:/usr/bin$ ls -la media*
-rwxr-xr-x 1 root root 47352 Apr 3 2022 mediainfo
-rwxr-xr-x 1 root root 374000 Apr 3 2022 mediainfo-gui
BUT within the virtual environment only one of them is available. The other one simply doe not exist
sh-5.1$ /usr/bin/ffmpeg
ffmpeg version 5.0.2 Copyright (c) 2000-2022 the FFmpeg developers
[... more ...]
sh-5.1$ /usr/bin/mediainfo
sh: /usr/bin/mediainfo: No such file or directory
So what could be the reason, why one binary is available and the other one is not.
Edit: this happens only in the termial / execution environment within pycharm
It turns out that Pycharm installed by flatpak has its own "environment" where one of the binaries was installed - the other one was not.
There are always jpeg decoder libraries pre-installed on Linux like:
/usr/lib/x86_64-linux-gnu/libjpeg.so
/usr/lib/x86_64-linux-gnu/libjpeg.so.62
/usr/lib/x86_64-linux-gnu/libjpeg.so.62.0.0
/usr/lib/x86_64-linux-gnu/libjpeg.so.8
/usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
What is the difference between the so library? Does libjpeg.so.62 build from libjpeg-turbo?
Firstly, if you run:
ls -l /usr/lib/x86_64-linux-gnu/*jpeg*
you will see that most of the files are just symlinks to the one with the full version, so programs can link against the latest one by specifying an unversioned library in the knowledge that it will point to the latest version:
lrwxrwxrwx 1 root root 17 Oct 20 2016 libjpeg.so -> libjpeg.so.62.2.0
lrwxrwxrwx 1 root root 17 Oct 20 2016 libjpeg.so.62 -> libjpeg.so.62.2.0
-rw-r--r-- 1 root root 436224 Oct 20 2016 libjpeg.so.62.2.0
Secondly, unfortunately I don't have the same files as you else I would help further, but in general, you can find which package a given file comes from like this:
dpkg -S someFile
So, on my system, I can see that libjpeg.a for example, comes from package libjpeg62-turbo-dev
dpkg -S libjpeg.a
libjpeg62-turbo-dev:amd64: /usr/lib/x86_64-linux-gnu/libjpeg.a
I have this Ubuntu version:
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
I just download oracle-instantclient12.2-basiclite-12.2.0.1.0-1.x86_64.rpm and install the tools using
alien -i oracle-instantclient12.2-basiclite-12.2.0.1.0-1.x86_64.rpm
But I can't find the exp anywhere, just these 2 files
root#localhost:/usr/lib/oracle/12.2/client64/bin# ls -la
total 108
drwxr-xr-x 2 root root 4096 Nov 8 14:47 .
drwxr-xr-x 4 root root 4096 Nov 8 14:47 ..
-rwxr-xr-x 1 root root 43797 Mar 16 2017 adrci
-rwxr-xr-x 1 root root 56984 Mar 16 2017 genezi
The utilities are not part of the basic (or basiclite) package. The instant client download page lists the packages and what they contain. You need to get the tools package, oracle-instantclient12.2-tools-12.2.0.1.0-1.x86_64.rpm, in addition to the basic package, to be able to use exp and imp (and their datapump equivalents; and SQL*Loader).
You may find the SQL*Plus package useful as well.
I currently have awstats 7.0 which is from 2010. I would like to update to current stable relase, which is awstats 7.3
I tried
tar zxf awstats-7.3.tar.gz
cd awstats-7.3
ls -al
drwxr-xr-x 5 puter puter 4096 Jan 29 2014 .
drwxr-xr-x 4 puter puter 4096 Jan 24 23:53 ..
drwxr-xr-x 4 puter puter 4096 Jan 29 2014 docs
-rw-r--r-- 1 puter puter 7020 Jan 29 2014 README.TXT
drwxr-xr-x 5 puter puter 4096 Nov 4 2013 tools
drwxr-xr-x 7 puter puter 4096 Nov 4 2013 wwwroot
./configure
bash: ./configure: No such file or directory
make
make: No targets specified and no makefile found. Stop.
make install
make: *** No rule to make target `install'. Stop.
???
please, advise. Thank you.
I also followed this link
http://www.awstats.org/docs/awstats_upgrade.html
however, I dont really know where to distribute the files on the system.
lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.5 (wheezy)
Release: 7.5
Codename: wheezy
If the first command you try to run (./configure) fails (No such file or directory), then probably you should stop right there. The rest of the commands won't work any better.
Did you read the README.TXT file?
Awstats doesn't seem to be a program that needs to be compiled, and it doesn't have a configure script (obviously since you showed the list of files and there isn't one there). I googled for "awstats install" and found this page where it says:
After downloading and extracting the AWStats package, you should run the awstats_configure.pl script to do several setup actions. You will find it in the AWStats tools directory
and you clearly have a tools directory, so I would start with that.
I'm trying to install the ruby gem for curl (curb) on Ubuntu 10.10, but during the installation, I get the error:
/usr/bin/ld: cannot find -lcurl
But curl is installed! apt-get install curl says I've got the newest version. There is no curl-dev either.
I'm getting these kinds of errors all the time, with curl, with libxml, with readline, and I have no idea what's going on. Something is wrong with my installation of Ubuntu, but I don't know what, I don't know where to look, I don't know what to google for, and I don't know how to fix it.
Help would be deeply appreciated.
EDIT: this is in my /usr/lib dir for libcurl:
lrwxrwxrwx 1 root root 19 2011-02-18 23:15 libcurl-gnutls.so.3 -> libcurl-gnutls.so.4
lrwxrwxrwx 1 root root 23 2011-02-18 23:15 libcurl-gnutls.so.4 -> libcurl-gnutls.so.4.2.0
-rw-r--r-- 1 root root 339880 2010-06-23 09:07 libcurl-gnutls.so.4.2.0
lrwxrwxrwx 1 root root 12 2011-02-18 23:14 libcurl.so.3 -> libcurl.so.4
lrwxrwxrwx 1 root root 16 2011-02-18 23:14 libcurl.so.4 -> libcurl.so.4.2.0
-rw-r--r-- 1 root root 360904 2010-06-23 09:07 libcurl.so.4.2.0
You need the libcurl3-dev package.
Curl is just the command line utility. The library is libcurl3, and it has a -dev package.
(It seems to be a virtual package in Maverick, redirecting to libcurl4-openssl-dev, but that should still work or the virtual package would not have been provided.) Indeed from your lib directory I can see that libcurl3 is merely a symbolic link to libcurl4. (libcurl3-dev may not be available in the future, so use libcurl4-openssl-dev directly).