Loading...
Loading...
Loading...
If it says `command not found`, continue below.
# 𦫠Installing Go and Go-Based Tools (like `hakrevdns`) on Linux
## π§ Step 1: Check if Go is Installed
```bash
go version
```
If it says `command not found`, continue below.
---
## π§© Step 2: Download and Install Go
Visit the official Go download page:
π [https://go.dev/dl/](https://go.dev/dl/)
Then download the latest Linux tarball, for example:
```bash
wget https://go.dev/dl/go1.23.2.linux-amd64.tar.gz
```
Remove any old installation:
```bash
sudo rm -rf /usr/local/go
```
Extract it to `/usr/local`:
```bash
sudo tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz
```
---
## βοΈ Step 3: Add Go to Your PATH
If you use **Zsh** (default on Kali, Parrot, etc.):
```bash
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.zshrc
source ~/.zshrc
```
If you use **Bash**:
```bash
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
```
Check Go version:
```bash
go version
```
β
Should print something like `go version go1.23.2 linux/amd64`
---
## π§ Understanding Go's Folder Structure
Itβs important to understand how Go separates **its compiler** from **user-installed tools**:
| Location | Purpose | Owner |
|-----------|----------|--------|
| `/usr/local/go` | Go compiler & standard library | Root/system |
| `~/go/bin` | Where Go installs new tools (like `httpx`, `hakrevdns`, etc.) | Your user |
| `/usr/local/bin` | Where you can move tools to make them globally available | Root/system |
### π Explanation
- `/usr/local/go` β contains the Go runtime and compiler. You should **not** install tools here.
- `~/go/bin` β Go automatically puts new binaries here when you run `go install ...`.
- `/usr/local/bin` β already in your PATH system-wide, so moving tools here makes them available everywhere.
Even though Go is installed in `/usr/local/go`, **your tools are still built under `~/go/bin` by default.** This design keeps system files separate from user data.
If you want your tools to be globally accessible, you can manually move them:
```bash
sudo mv ~/go/bin/hakrevdns /usr/local/bin/
```
Now you can run it from anywhere:
```bash
hakrevdns -h
```
---
## π§° Step 4: Install a Go Tool (Example: `hakrevdns`)
### Method 1 β Regular Install (Default Behavior)
```bash
go install github.com/hakluke/hakrevdns@latest
```
This builds the binary in:
```
~/go/bin/hakrevdns
```
Move it globally:
```bash
sudo mv ~/go/bin/hakrevdns /usr/local/bin/
```
Test:
```bash
hakrevdns -h
```
---
### Method 2 β Automated Helper Function (Optional)
Add this function to your `~/.zshrc`:
```bash
goinstall() {
go install "$1"
tool=$(basename "$1" | cut -d'@' -f1)
sudo mv ~/go/bin/$tool /usr/local/bin/ 2>/dev/null
echo "$tool installed globally."
}
```
Reload your shell:
```bash
source ~/.zshrc
```
Now install globally in one line:
```bash
goinstall github.com/hakluke/hakrevdns@latest
```
β
Output example:
```
hakrevdns installed globally.
```
---
## π§ Notes
- `/usr/local/go/bin` β Go compiler
- `~/go/bin` β Build output for tools
- `/usr/local/bin` β Global tools location
---
### π Verify
```bash
which go
which hakrevdns
```
Both should show paths under `/usr/local/`.
---
### β
Example Summary
| Task | Command |
|------|----------|
| Install Go | `sudo tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz` |
| Add PATH | `export PATH=$PATH:/usr/local/go/bin` |
| Install tool | `go install github.com/hakluke/hakrevdns@latest` |
| Move globally | `sudo mv ~/go/bin/hakrevdns /usr/local/bin/` |
μ΄λ ν λ¬Έμλ μ€ν¬λ¦½νΈκ° λ€λ₯Έ **νλ‘ν μ½ / ν¬νΈ / νΈμ€νΈ** μ μλ 리μμ€ μ¬μ©νλ κ²μ μ ννλ μ μ± . μλ₯Ό λ€μ΄, λ€μκ³Ό κ°μ μ¬μ΄νΈμμ 리μμ€λ₯Ό λ€λ₯Έ κ³³μΌλ‘ μμ²νλ€κ³ νμ.
* **Production MDB**: updated monthly.
This document outlines the mandatory procedures for developing and verifying VCR elements (shaders, manifests, and assets) to ensure high-fidelity, centered, and non-clipping renders.
http://localhost:8000