Para atualizar ou instalar programas, digite apt-get
como root, e utilizando o nome do programa, assim:
sudo apt-get install nomedoprograma
PS: Caso não queira que peça confirmação para instalação, use o parâmetro -y
.
Lembrando que o comando sudo
dá uma permissão temporária de root para tarefas que exijam o superusuário. Caso você esteja usando o Debian e não encontre o sudo, basta instalar e habilitar ele com esses comandos (como root):
apt-get update
apt-get install sudo
adduser nomedeusuario sudo
shutdown -r now
Para desinstalar, o mesmo processo, substituindo install por remove (o parâmetro purge remove as dependências):
sudo apt-get --purge remove nomedoprograma
PS: Podemos remover programas instalados por deb dessa forma também.
Podemos ver o cache dele para vermos o nome exato do programa pra baixar, por exemplo:
sudo apt-cache search nomedoprograma
Para vermos os dados sobre o programa, fazemos assim:
sudo apt-cache show nomedoprograma
Para vermos as dependências de um programa, fazemos assim:
sudo apt-cache depends nomedoprograma
Lembrando que atualmente, as opções apt-get e apt-cache podem ser resumidas somente para apt
, como apt install nomedoprograma
.
PS: Para podermos instalar arquivos, comente em /etc/apt/sources.list
a parte /media/cd-rom para não pedir disco de instalador.
Para adicionar um usuário como sudo, edite o arquivo em /etc/sudoers
, e coloque esse trecho de código:
nomedousuario ALL=(ALL:ALL) ALL
Se for instalar programas baixados em arquivos tar:
cd ~/Downloads
# Isso descompactará o pacote tar:
tar -zxvf nomedopacote.tar.gz
sudo mv nomedodiretoriodoprograma /opt/
# Isso é pra criar um link para acessarmos diretamente o programa pelo terminal:
sudo ln -s /opt/nomedodiretoriodoprograma/nomedoprograma /usr/bin/nomedoprograma
rm nomedopacote.tar.gz
O comando ln -s cria um link para a pasta /usr/bin, de forma que possamos abrir ele usando o terminal apenas digitando o nome do programa.
Esse processo pode ser usado para instalar programas (caso já estejam compilados) na pasta /opt
, por exemplo, onde ele ficará acessível a todos os usuários.
PS: Se conter um arquivo install ou readme, olhe ele para ver se a forma de instalar pode ter alguma diferença, como dependências ou comandos específicos. A documentação do desenvolvedor no site oficial também pode ter informações do tipo.
Só lembrando de que o tar é apenas um arquivador, as extensões xz, bz2, gz e etc., são as compactações usadas nos arquivos, que se tiverem em c, cpp e h, e tiverem um makefile, eles não foram compilados (são apenas códigos-fontes). Quanto tiverem arquivos so, sh e executáveis (sem extensões, geralmente), ele já está compilado. Sempre olhe dentro da pasta descompactada para ver os tipos de arquivos dentro dela.
Caso o pacote tar venha com os códigos-fonte pra compilar, use esses comandos para compilar o programa (pode demorar um pouco), após mover ele pro diretório definitivo (como o /opt):
# Os processos do configure e make são apenas para programas não compilados:
./configure
make
make clean
sudo make install
Nesses casos podemos ignorar os comandos de mover pra /opt e criar link, pois estes costumam ser incluídos já no makefile do programa.
Alguns pacotes não tem o configure (apesar de que pode estar com o nome do programa, nesse caso use o comando com o nome), só pular pro make, se já estiver compilado e tiver um makefile, vá pro make install. O tar é um arquivador e a extensão (tipo gz, xz ou bz2) é o compactador, então teoricamente pode ter qualquer tipo de arquivo dentro dele, como códigos-fontes pra compilar, programas prontos, ou outros tipos de arquivos como pacotes deb e scripts sh.
Alguns arquivos tar já vem com os programas compilados, nesses não é necessário usar o configure, apenas o make ou pode até usar diretamente, mas pode ser necessário dar o chmod pra execução. Caso o configure não rode, use o comando ./configure --prefix=/usr/local --with-slang=/goodies/lib
. Podemos usar o ./configure --disable-pacote
para desabilitar algum pacote não instalado. Pode ser necessário usar cmake
no lugar de make.
PS: Ao usar o configure, pode ter algum pacote não instalado no sistema, nesse caso de um apt-get no pacote e depois tente rodar o configure, tente também um sudo apt-get -f install
.
Para deinstalar é só ir no diretório onde ele se localiza e dar make uninstall
.
PS: Para compilar corretamente é necessário ter instalado o build-essential, usando um sudo apt-get install build-essential
, que contém as ferramentas necessárias, incluindo o gcc e g++. Também é necessário instalar o zlib, com sudo apt-get install zlib
, sudo apt-get install zlib-devel
, ou já faça tudo com sudo apt-get install build-essential libglib2.0-dev libgtk2.0-dev libxml2-dev openbsd-inetd ckermit libgtk-3-dev checkinstall
.
Lembrando que cara tipo de arquivo tem seu comando específico para descompactar, como podem ver:
tar -xvf nomedoarquivo.tar.xz
- Descompacta tar.xztar -zxvf nomedoarquivo.tar.gz
- Descompacta tar.gz e tgztar -jxvf nomedoarquivo.tar.bz2
- Descompacta tar.bz2No Ubuntu podemos criar atalhos dessa forma:
cd ~/Desktop
touch nomedolancador.desktop
chmod +x nomedolancador.desktop
E editar o lançador criado, com esse código aqui, substituindo pelas partes desejadas:
[Desktop Entry]
Name=NomeDoPrograma
Type=Application
Exec=/usr/bin/nomedoprograma
Icon=/usr/share/icons/gnome/48x48/caminhodaimagem.png
Caso queira um atalho com acesso root, faça ele assim:
[Desktop Entry]
Name=NomeDoPrograma
Type=Application
TryExec=su-to-root
Exec=su-to-root -X -c /usr/bin/nomedoprograma
Icon=/usr/share/icons/gnome/48x48/caminhodaimagem.png
Um lançador para diretórios também pode ser feito, da seguinte forma:
[Desktop Entry]
Name=NomeDoDiretorio
Type=Link
URL=file:///usr/bin/
Icon=folder
PS: Se colocarmos o atalho na pasta padrão (que é /usr/local/share/applications
), ele aparecerá na lista de aplicativos normalmente.
Caso queira criar um atalho para uma programa instalado pelo repositório, veja as pastas que os executáveis e as imagens estão digitando whereis nomedoaplicativo
(geralmente é em /usr/bin
e /usr/lib
, respectivamente. Também podemos colocar um ícone padrão do sistema, como o "folder" no código acima, que pode ser o nome do aplicativo, por exemplo.
As principais distros são baseadas na Debian, como o Ubuntu, Kali, Parrot e Mint. Esses sistemas usam os instaladores deb e o dpkg para os instalar.
Se for um arquivo deb, apenas digite sudo dpkg -i nomedopacote.deb
ou clique com o botão direito no arquivo e selecione a opção instalar pacote. Pode ser necessário baixar algumas dependências antes. O mesmo serve pra atualizar um pacote já instalado.
Se formos instalar um arquivo rpm em sistemas baseados em Debian, instale o alien e digite sudo alien nomedopacote.rpm
e depois sudo dpkg -i nomedopacote.deb
.
Ao instalar deb, ele já instalará os arquivos nas pastas específicas, assim como o apt pelo repositório. É parecido com os apk do Android.
Para remover um arquivo deb, digite sudo dpkg -r nomedoaplicativo
, ou use o apt para isso.
Para listar os pacotes deb instalados, digite dpkg -l
(podendo usar também dpkg -l | wc -l
). Para listar um pacote específico, digite dpkg -l nomedopacote
ou apt list nomedopacote
.
Para reconfigurar o dpkg, digite sudo dpkg --configure -a
.
Para instalar um arquivo sh, basta dar permissão de execução com sudo chmod +x nomedoscript.sh
e rodar ele com sudo ./nomedoscript.sh
. O processo com arquivos run, bin, appimage ou sem extensão (mas que seja executável ou script) é o mesmo. Pode ser necessário instalar dependências caso a instalação dê erro.
Um arquivo .AppImage pode ser executado diretamente sem instalar e sem dar permissões, no entanto, requer um pouco de cautela ao executar esses tipos de programas.
Algumas distros como o Ubuntu tem loja de aplicativos, onde podemos baixar diretamente vários programas, podemos procurar por exemplo, o BleachBit (limpador de sistema para Linux) e instalar sem dificuldades.
Para adicionar um repositório, podemos fazer algo assim (esse exemplo é pro Java):
sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install oracle-java14-installer
Para remover é só digitar sudo add-apt-repository http://ppa.launchpad.net/linuxuprising/java/ubuntu --remove
.
Para corrigir erros no download do Java, primeiramente pegue o link do download certo e seu checksum no site da Oracle: https://www.oracle.com/java/technologies/javase-downloads.html
Tente instalar o Java pelo repositório normalmente, depois edite o arquivo localizado em /var/lib/dpkg/info/
com o nome oracle-java14-installer.postinst
(ou versão equivalente) como root, e altere essa linha para o checksum da versão especificada do Java:
SHA256SUM_TGZ="927cfcfff502c5e73db33bb6fee7f29f62bd0e831233fd78cd58a5b998bc73be"
E no mesmo arquivo, altere a versão e a versão menor aqui:
JAVA_VERSION=14.0.1
JAVA_VERSION_2nd_PART=
JAVA_VERSION_MINOR=7
E corrija o restante do link aqui (no caso, o hash do link):
PARTNER_URL="http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION}+${JAVA_VERSION_MINOR}/664493ef4a6946b186ff29eb326336a2/$FILENAME"
Caso não consiga atualizar por esse método, copie o conteúdo do pacote tar.gz na pasta java-14-oracle
ou equivalente em /usr/lib/jvm
. Ou jogue o tar.gz na pasta /var/cache/oracle-jdk14-installer-local
ou equivalente.
Também é possível baixar arquivos de um servidor pro Linux com o comando wget
, veja um exemplo pra baixar o otimizador Stacer, para instalação posterior:
wget https://github.com/oguzhaninan/Stacer/releases/download/v1.0.6/Stacer_1.0.6_i386.deb -O stacer.deb
PS: É possível baixar qualquer tipo de conteúdo dessa forma.
Para atualizar o sistema, usamos esses comandos:
sudo apt-get -f install
sudo apt-get update
sudo apt-get upgrade
sudo apt-get -u dist-upgrade
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove
Atualmente, podendo ser também só com apt, assim:
sudo apt install -f
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt clean
sudo apt autoclean
sudo apt autoremove
PS: O dist-upgrade pode ser substituído por full-upgrade
.
O comando update
apenas atualiza a lista de programas a atualizar, para atualizar os mesmos usamos os comandos upgrade
e dist-upgrade
.
Esteja atento as diferenças:
apt-get upgrade
- Atualiza apenas o que tem uma nova versão.apt-get dist-upgrade
- Atualiza o que tem uma nova versão e instala e remove pacotes de forma inteligente, atualiza também o kernel.do-release-upgrade
- Executado após o dist-upgrade, para atualizar a versão do sistema.PS: Caso apareça algum erro tipo "não foi possível obter trava /var/lib/dpkg/lock", execute sudo rm /var/lib/dpkg/lock
(coloque o caminho que aparecer no erro). Mas o recomendado é matar o processo, usando kill -9 1503
(o número do processo mostrado).
Para listar os pacotes já instalados, use o comando sudo apt list --installed
ou dpkg -l
. Para listar os pacotes digite apt list
e para lista os pacotes a atualizar, digite apt list --upgradable
.
Se tiver problemas com atualizações de repositórios, digite sudo rm -r /var/lib/apt/lists/* -vf
.
Ao dar erro em busca de arquivos, tente dar um update ou digite sudo apt-get upgrade --fix-missing
(podendo fazer também com dist-upgrade).
Se algum pacote não atualizar com upgrade nem dist-upgrade, apenas dê um sudo apt install nomedopacote
para forçar a atualização.
Se aparecer problemas com dependências de arquivos ao instalar, execute esses comandos:
sudo apt-get clean
sudo apt-get update
sudo dpkg --configure -a
sudo apt-get install -f
sudo apt --fix-broken install
sudo rm /var/cache/debconf/*.dat
Em algumas situações, principalmente ao instalar arquivos DEB, as dependências já são corrigidas com o sudo apt-get install -f. Dependendo do caso, pode ser necessário rodar sudo dpkg --reconfigure -a
, podendo também ser especificado um pacote específico (o mesmo vale para o configure).
PS: O apt-get clean também é usado para limpar arquivos de instalação já usados, pode ser usado apt-get autoclean também, ou autoremove para remover pacotes não usados.
Para limpar a RAM do Linux, use esses comandos na ordem:
sudo sync
sudo sysctl vm.drop_caches=3
sudo sh -c 'echo 3>/proc/sys/vm/drop_caches'
As dicas dessa página foram em sua maioria, usadas em distros baseadas em Debian (como Ubuntu, Mint, Kali, Parrot), mas a maioria consegue também ser aplicada em distros baseadas em Red Hat (como Fedora, CentOS, OpenSUSE, Oracle Linux), no entanto, essas últimas não utilizam o apt-get e nem o dpkg, e sim o yum e o rpm.
Para atualizar distros baseadas em Red Hat, digite esses comandos:
yum check-update # Checa o que tem pra atualizar
yum upgrade # Atualiza os programas
yum upgrade system-upgrade # Atualiza os programas e o sistema
yum clean packages # Limpa os pacotes em cache
yum clean all # Limpa os pacotes já baixados
yum autoremove # Remove pacotes não usados
Para instalar um pacote específico digite yum install nomedopacote
, para remover digite yum remove nomedopacote
, e para procurar um pacote, yum search nomedopacote
. Para listar os pacotes, digite yum list
e se for listar um determinado pacote, use o comando yum list nomedopacote
. Para listar pacotes a atualizar use yum list --updates
e para listar os pacotes já instalados, digite yum list --installed
.
Para instalar um pacote rpm baixado, use o comando rpm -i nomedopacote.rpm
(pode ser necessário instalar dependências antes), para atualizar um pacote use o comando rpm -U nomedopacote.rpm
e para remover um pacote digite rpm -e nomedopacote
(sem a extensão mesmo).
Para listar os pacotes já instalados, use o comando rpm -qa
.
Em distros baseadas em Red Hat, também podemos usar o programa Alien para converter deb para rpm, digitando o comando alien --to-rpm nomedopacote.deb
como root, e depois pra instalar use normalmente rpm -i nomedopacote.rpm
.
Hoje temos como opção também o gerenciador de pacotes dnf, cujos comandos básicos são esses:
dnf check-update # Verifica atualizações
dnf upgrade # Atualiza os programas
dnf system-upgrade # Atualiza o sistema
dnf clean packages # Limpa os pacotes em cache
dnf clean all # Limpa os pacotes já baixados
dnf autoremove # Remove pacotes não usados
dnf install nomedopacote # Instala um pacote
dnf remove nomedopacote # Remove um pacote
dnf search nomedopacote # Procura um pacote
dnf list # Lista os pacotes disponíveis
dnf info nomedopacote # Mostra informações sobre um pacote
dnf check-update # Também lista os pacotes a atualizar
dnf list installed # Lista os pacotes instalados
PS: Todos os comandos devem ser executados como root.
Esses são os diretórios mais importantes do Linux e sistemas baseados em Unix:
PS: Os diretórios são reconhecidos como arquivos no Linux.
O Android (que também usa Kernel Linux) também possuí a maioria desses diretórios (exceto /boot, /cdrom, /home, /mnt, /opt, /run, /srv, /usr e /var) não acessíveis em sistemas sem root, e tem outras pastas como a /cache (armazenamento de dados pra execução), /data (dados), /init (inicialização), /sdcard (cartão SD), /storage (área de armazenamento) e /system (sistema).
PS: A pasta /opt
: Pode ser usado para instalar arquivos de downloads.
Para mover entre pastas usamos cd
(igual no DOS), para exibir conteúdo do diretório ls
.
O arquivo ~/.bashrc
é onde está o path do usuário, onde podemos adicionar variáveis de ambiente colocando export PATH=$PATH:/caminhododiretorios/
, e em /etc/bash.bashrc
podemos colocar outras variáveis de ambiente, na sintaxe NOMEDAVARIAVEL=conteudo
. Podemos também colocar outros diretórios no path de forma global no arquivo /etc/environment
, separado por dois pontos (como :/caminhododiretorio
).
PS: Evite colocar caminhos com espaços.