karlinux

Debian para desarrolladores

Post de ayuda en configurar debian 13 para desarrolladores. Me vi en estas para poder configurar mi lenovo t470p con una nvidia g940mx. Y es que con la nvidia me habia sido imposible configurarla tanto en archlinux como ubuntu. No es que no funcionara la tarjeta, es que tenia problemas con la suspension del equipo, que se quedaba en el limbo y tenia que hacer un "hard reset". Y cuando algo no funciona, esta debian para poder realizar aquello que no puedes hacer con las demas distros. Asi que ya que tuve que instalar debian pues dejo mis apuntes para aquel que lo necesite:

1. Preparando el sistema, actualizacion e instalacion de los paquetes esenciales:

sudo apt update && sudo apt upgrade -y
sudo apt install build-essential git -y

2. Librerias para C/C++

sudo apt install libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev

Autotools herramientas para ayudar en el codigo fuente

sudo apt install autoconf automake libtool cmake

Testing frameworks:

sudo apt install libcunit1-dev  # CUnit
sudo apt install libgtest-dev   # Google Test

3. Python

sudo apt install python3 python3-dev python3-pip python3-venv

4. Java

Aqui en Debian 13 no existe java17 que a dia de hoy es el estandar en programacion en java por lo que he optado por instalar los precompilados de java de temurin. Para ello instalamos los paquetes necesarios:

apt install -y wget apt-transport-https gpg

Ahora lo que hacemos es anadir la clave del repositorio adoptium

wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null

Anadimos el repositorio al sources.list

echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list

Instalamos el paquete:

sudo apt update # update if you haven't already
sudo apt install temurin-17-jdk

Elegimos el entorno de java con el comando:

sudo update-alternatives --config java

Elegimos la opcion:

Existen 2 opciones para la alternativa java (que provee /usr/bin/java).

  Selección   Ruta                                         Prioridad  Estado
------------------------------------------------------------
  0            /usr/lib/jvm/java-21-openjdk-amd64/bin/java   2111      modo automático
  1            /usr/lib/jvm/java-21-openjdk-amd64/bin/java   2111      modo manual
* 2            /usr/lib/jvm/temurin-17-jdk-amd64/bin/java    1711      modo manual

Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección: 

Tambien podemos anadir la ejecucion del entorno de java como una variable de entorno para bash o zsh:

echo 'export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64' >> ~/.bashrc
source ~/.bashrc
echo 'export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64' >> ~/.zshrc
source ~/.zshrc

Podemos comprobar la version de java:

java --version
echo $JAVA_HOME

Testing framworks:

sudo apt install junit

5. Node.js & npm: Mas facil:

sudo apt install npm nodejs

Alternativa, node por nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
# Descargamos e instalamos la ultima version lts
LTS_VERSION=$(nvm ls-remote | grep -i latest | grep -Po 'v\d+\.\d+\.\d+' | tail -n 1)
nvm install "$LTS_VERSION"
nvm use "$LTS_VERSION"

6. Docker Instalacion:

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
udo apt install docker-compose-plugin

Habilitamos docker y anadimos al usuario al grupo:

sudo systemctl enable docker
sudo usermod -aG docker $USER

7. IDE

Visual Studio Code

sudo apt install software-properties-common apt-transport-https
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install code

Neovim a lo karlinux

sudo apt install neovim
# Movemos los archivos de configuracion si los hubiera
mv ~/.config/nvim{,.bak}
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}
# Copiamos la configuracion de neovim
git clone https://github.com/CarlosMolinesPastor/nvim.git ~/.config/nvim

Opcionalmente instalamos ollama con una IA pequena en local:

curl -fsSL https://ollama.com/install.sh | sh
ollama run qwen2.5-coder:1.5b

Intellij community/ultimate

curl -s https://s3.eu-central-1.amazonaws.com/jetbrains-ppa/0xA6E8698A.pub.asc | gpg --dearmor | sudo tee /usr/share/keyrings/jetbrains-ppa-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/jetbrains-ppa-archive-keyring.gpg] http://jetbrains-ppa.s3-website.eu-central-1.amazonaws.com any main" | sudo tee /etc/apt/sources.list.d/jetbrains-ppa.list > /dev/null
sudo apt update
sudo apt install -y intellij-idea-community
# sudo apt install -y intellij-idea-ultimate

8. SHELL

Instalacion de zsh un shell diferente a bash que ofrece alguna que otra mejora en plugins y versatilidad, dependencias:

sudo apt install zsh fzf ripgrep lsd bat

Cambio de shell, probablemente tendremos que reiniciar la sesion

sudo chsh -s /usr/bin/zsh

Instalamos starship

curl -sS https://starship.rs/install.sh | sh
starship preset pastel-powerline -o ~/.config/starship.toml

Configuracion propia

sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install --key-bindings --completion --no-update-rc
cd ~
git clone https://github.com/CarlosMolinesPastor/zsh.git
cp ~/zsh/.zshrc ~/.zshrc
source .zshrc

9. COMPROBACION DE LOS ENTORNOS

gcc --version
python3 --version
java --version
node --version
docker --version
git --version

Con todo esto tendriamos un punto de partida para poder tener una instalacion de debian para poder empezar a desarrollar con cierta tranquilidad. Espero haber ayudado a alquien.

Hasta la proxima bears!!!!!!!

Articulos del blog

Social

Portfolio

Github