# Debian Development Tools Debian provides compilers, interpreters, debuggers, and version control for software development. ## Build Essentials Install compiler, linker, make, and headers: ```bash sudo apt install build-essential ``` This pulls in `gcc`, `g++`, `make`, `libc6-dev`, and related tools. ## Compiling C/C++ Compile C program: ```bash gcc -o program program.c gcc -Wall -O2 -o program program.c # with warnings and optimization ``` Compile C++: ```bash g++ -o program program.cpp ``` Link multiple files: ```bash gcc -c file1.c -o file1.o gcc -c file2.c -o file2.o gcc -o program file1.o file2.o -lm # -lm links math library ``` ## Debugging Use `gdb` (GNU Debugger): ```bash sudo apt install gdb gcc -g -o program program.c # -g includes debug info gdb program ``` Common gdb commands: - `run` — start program - `break main` — set breakpoint - `step` — step into - `next` — step over - `print variable` — inspect variable - `continue` — resume Memory checking: ```bash sudo apt install valgrind valgrind ./program ``` ## Interpreters Install Python: ```bash sudo apt install python3 python3-pip ``` Install Node.js: ```bash sudo apt install nodejs npm ``` Install Ruby: ```bash sudo apt install ruby ``` Install Go: ```bash sudo apt install golang-go ``` Language-specific package managers: - Python: `pip3 install package` - Node: `npm install package` - Ruby: `gem install package` - Go: `go get package` ## Version Control Install Git: ```bash sudo apt install git git config --global user.name "Your Name" git config --global user.email "you@example.com" ``` Clone a repo: ```bash git clone https://github.com/user/repo.git ``` ## Build Tools Make is standard: ```bash sudo apt install make make # runs default target make install # runs install target ``` CMake for cross-platform: ```bash sudo apt install cmake ``` ## Installing Dependencies Find what package provides a library: ```bash apt-file search libssl-dev apt-cache search libssl ``` Install development headers (most common): ```bash sudo apt install libfoo-dev sudo apt install libssl-dev ``` Build dependencies for existing package: ```bash sudo apt build-dep package-name ``` ## IDE/Editors - `vim` or `emacs` — powerful text editors - `gedit` — GNOME text editor - VS Code: download from Microsoft - JetBrains IDEs: download from JetBrains Most developers use editor + CLI tools rather than full IDE on Debian servers.