Skip to content

Instantly share code, notes, and snippets.

@ricsdeol
Last active September 23, 2023 19:18
Show Gist options
  • Save ricsdeol/22ff74e348ab380d1c85c0f62cab453c to your computer and use it in GitHub Desktop.
Save ricsdeol/22ff74e348ab380d1c85c0f62cab453c to your computer and use it in GitHub Desktop.
Config WSL2 Ubuntu

Config WSL2 Ubuntu

Config Shared Drive projects

Create VHDX dirve

Mount-VHD -PATH "D:\Ricardo\projects.vhdx" -PassThru
wsl --mount \\.\PHYSICALDRIVE2

Obs: create Taks to run command above after initialize

Segup Ubuntu on WSL2

Enable snap

Edit /etc/wsl.conf

[boot]
systemd=true

Restart on PowerShell

 wsl --shutdown

Install some packages and

sudo snap install htop
sudo snap install fast
sudo snap install redis-desktop-manager

Obs: run redis-desktop /snap/bin/redis-desktop-manager.res

Install Basic packages

sudo apt-get install postgresql-client postgresql-server-dev-14 gawk autoconf automake bison libffi-dev libgdbm-dev libncurses5-dev libsqlite3-dev libyaml-dev pkg-config sqlite3 libgmp-dev libreadline-dev libssl-dev build-essential zlib1g-dev liblzma-dev patch git git-extras vim fzf

Heroku

curl https://cli-assets.heroku.com/install.sh | sh

Install Zsh and oh-myssh

sudo apt install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

git clone https://github.com/spaceship-prompt/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1

ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Install asdf-vm

git clone https://github.com/asdf-vm/asdf.git ~/.asdf

Install Ruby

asdf plugin add ruby
asdf install ruby latest
asdf global ruby latest
bundle config jobs 16

Install nodejs

git clone https://github.com/nodenv/node-build.git
sudo PREFIX=/usr/local ./node-build/install.sh
rm -Rfv node-build/

## restart terminal
## show last lts servion

asdf plugin-add nodejs
asdf install nodejs 18.18.0
asdf global nodejs 18.18.0

asdf reshim

Ruby 2.6 on Ubuntu 22.04

https://deanpcmad.com/2022/installing-older-ruby-versions-on-ubuntu-22-04/

cd ~/

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
tar zxvf openssl-1.1.1g.tar.gz

cd openssl-1.1.1g
./config --prefix=$HOME/.openssl/openssl-1.1.1g --openssldir=$HOME/.openssl/openssl-1.1.1g

make && make install

rm -rf ~/.openssl/openssl-1.1.1g/certs
ln -s /etc/ssl/certs ~/.openssl/openssl-1.1.1g/certs

# Ruby 3.0
RUBY_CONFIGURE_OPTS=--with-openssl-dir=$HOME/.openssl/openssl-1.1.1g asdf install ruby latest:3.0

# Ruby 2.7
RUBY_CONFIGURE_OPTS=--with-openssl-dir=$HOME/.openssl/openssl-1.1.1g asdf install ruby latest:2.7

# Ruby 2.6
RUBY_CONFIGURE_OPTS=--with-openssl-dir=$HOME/.openssl/openssl-1.1.1g asdf install ruby latest:2.6

Tips

  • Restart wsl
Get-Service LxssManager | Restart-Service
wsl --shutdown
  • Git does't asking ssh key passphare
eval $(ssh-agent)
ssh-add ~/.ssh/id_ed25519
  • Clean Cache

as root

echo 3 > /proc/sys/vm/drop_caches

https://github.com/giggio/bashscripts/blob/main/cleanupMemoryCache.sh

References

https://twitter.com/giovannibassi/status/1704904621972488502 https://www.youtube.com/watch?v=_Uqf5_kN6Rw by https://twitter.com/giovannibassi

https://www.youtube.com/playlist?list=PLlAbYrWSYTiOpefWtd6uvwgKT1R-94Zfd by https://twitter.com/Willian_justen

https://youtu.be/28jHuWBi72w?si=rTCpKTNLDmbQM7Np https://youtu.be/sjrW74Hx5Po?si=n00UeYNF4jddnCgW by https://twitter.com/AkitaOnRails

legacy_version_file = yes
solargraph
ruby-debug-ide
bundler
mailcatcher
htmlbeautifier
yarn
typescript
ts-node
@types/node
[user]
email = ricardooliveira88@gmail.com
name = Ricardo Siqueira de Oliveira Leite
[color]
diff = true
grep = true
interactive = true
status = true
branch = true
status = true
ui = true
[core]
editor = vim
excludesfile = /home/ricardoleite/.gitignore
[alias]
st = status
ci = commit
br = branch
df = diff
lg = log -pgit ps
co = checkout
pom = pull origin master
ps = push
pl = pull
plr = pull --rebase
tree = "log --graph --pretty=format:'%C(yellow)%h%Creset -%C(red)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
[push]
default = current
autoSetupRemote = true
[rerere]
enabled = true
[safe]
directory = /home/ricsdeol/projects/
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion
*.iml
## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:
# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries
# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml
# Gradle:
# .idea/gradle.xml
# .idea/libraries
# Mongo Explorer plugin:
# .idea/mongoSettings.xml
## File-based project format:
*.ipr
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
*~
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
*.rbc
capybara-*.html
.rspec
/log
/tmp
/db/*.sqlite3
/db/*.sqlite3-journal
/public/system
/coverage/
/spec/tmp
**.orig
rerun.txt
pickle-email-*.html
# TODO Comment out these rules if you are OK with secrets being uploaded to the repo
#config/initializers/secret_token.rb
#config/secrets.yml
#config/database.yml
## Environment normalisation:
/.bundle
/vendor/bundle
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
.rvmrc
# if using bower-rails ignore default bower_components path bower.json files
/vendor/assets/bower_components
*.bowerrc
bower.json
# Ignore pow environment settings
.powenv
*.gem
*.rbc
/.config
/coverage/
/InstalledFiles
/pkg/
/spec/reports/
/test/tmp/
/test/version_tmp/
/tmp/*
## Specific to RubyMotion:
.dat*
.repl_history
build/
## Documentation cache and generated files:
/.yardoc/
/_yardoc/
## Environment normalisation:
/.bundle/
/vendor/bundle
/lib/bundler/man/
# for a library or gem, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# Gemfile.lock
#.ruby-version
#.ruby-gemset
.rspec
.sass-cache
*.css.map
## oh-my-zsh
.rake_tasks
.tags*
tags*
.imdone/
[wsl2]
memory=8GB
guiApplications=true
autoMemoryReclaim=gradual
sparseVhd=true
dnsTunneling=true
## open powershell and notepad.exe .\.wslconfig
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH="/home/ricsdeol/.oh-my-zsh"
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
SPACESHIP_PROMPT_ORDER=(
time # Time stamps section
user # Username section
dir # Current directory section
host # Hostname section
git # Git section (git_branch + git_status)
#hg # Mercurial section (hg_branch + hg_status)
package # Package version
node # Node.js section
bun # Bun section
deno # Deno section
ruby # Ruby section
python # Python section
elm # Elm section
elixir # Elixir section
#xcode # Xcode section
#swift # Swift section
golang # Go section
perl # Perl section
php # PHP section
rust # Rust section
#haskell # Haskell Stack section
#scala # Scala section
#kotlin # Kotlin section
#java # Java section
#lua # Lua section
dart # Dart section
#julia # Julia section
crystal # Crystal section
docker # Docker section
docker_compose # Docker section
aws # Amazon Web Services section
gcloud # Google Cloud Platform section
azure # Azure section
venv # virtualenv section
conda # conda virtualenv section
dotnet # .NET section
ocaml # OCaml section
vlang # V section
zig # Zig section
purescript # PureScript section
erlang # Erlang section
kubectl # Kubectl context section
ansible # Ansible section
terraform # Terraform workspace section
pulumi # Pulumi stack section
#ibmcloud # IBM Cloud section
nix_shell # Nix shell
gnu_screen # GNU Screen section
exec_time # Execution time
async # Async jobs indicator
line_sep # Line break
#battery # Battery level and status
jobs # Background jobs indicator
exit_code # Exit code section
sudo # Sudo indicator
char # Prompt character
)
ZSH_THEME="spaceship"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to automatically update without prompting.
# DISABLE_UPDATE_PROMPT="true"
# Uncomment the following line to change how often to auto-update (in days).
export UPDATE_ZSH_DAYS=13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
HIST_STAMPS="dd.mm.yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(asdf bundler rust command-not-found common-aliases compleat debian dircycle docker docker-compose
gem git gitfast git-extras heroku history rails rake-fast react-native rsync yarn z
zsh-interactive-cd zsh-navigation-tools zsh-autosuggestions zsh-syntax-highlighting)
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
alias zshconfig="vim ~/.zshrc"
alias ohmyzsh="code ~/.oh-my-zsh"
alias adu="sudo apt update ; sudo apt full-upgrade --yes; sudo snap refresh ; flatpak update"
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
alias zshconfig="code ~/.zshrc"
alias ohmyzsh="code ~/.oh-my-zsh"
alias wp='/home/ricsdeol/projects/worldpackers/worldpackersplatform/wp-platform'
alias explorer=explorer.exe
alias cmd=cmd.exe
alias powershell=powershell.exe
alias start='pwsh.exe -NoProfile -NoLogo -c start'
alias clip=clip.exe
alias notepad=notepad.exe
alias wt=wt.exe
alias ver='pushd /mnt/c > /dev/null;cmd.exe /c ver; pushd > /dev/null'
alias clean_zsh_history= cat -n .zsh_history | sort -t ';' -uk2 | sort -nk1 | cut -f2- > .zhistory && mv -f .zhistory .zsh_history
export EDITOR='vim'
export COMPOSE_HTTP_TIMEOUT=10000
export PATH="$HOME/.bin:$PATH"
export ANDROID_HOME="/home/ricsdeol/Android/Sdk"
export PATH="$ANDROID_HOME/tools:$PATH"
export BUNDLER_EDITOR=code
export RUBY_CONFIGURE_OPTS=--with-openssl-dir=$HOME/.openssl/openssl-1.1.1g
HEROKU_AC_ZSH_SETUP_PATH=/home/ricsdeol/.cache/heroku/autocomplete/zsh_setup && test -f $HEROKU_AC_ZSH_SETUP_PATH && source $HEROKU_AC_ZSH_SETUP_PATH;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment