Skip to content

通常 Linux 上的软件安装有四种方式:

  • 在线安装
  • 从磁盘安装 deb 软件包
  • 从二进制软件包安装
  • 从源代码编译安装

查看端口的使用情况

  • lsof 查看所有端口的进程
    • -i:端口号 查看指定端口号的进程

apt 在线安装

不同的 linux 发行版,在线安装方式会有一些差异【使用的命令,包管理工具 ……】


[!quote] apt

apt 是 Debian 及其派生发行版的软件包管理器,可以自动下载,配置,安装二进制,或者源代码格式的软件包

现在 apt 已经可以安装在支持 rpm 的系统,管理 rpm 包了

[!quote] rpm rpm 是 Red Hat 及其衍生版本【CentOS,Fedora】的包管理工具


更新软件源

我们会在使用 `apt-get` 来安装软件之前,先使用 `sudo apt-get update` 来更新软件源列表


bash
sudo apt-get update
sudo apt-get install 软件
  • 执行 sudo apt-get update 的时候,你的电脑【超市】就会查看所有的软件源【供货商】有没有新的软件【商品】
  • 如果不执行这个命令,可能软件源里有新软件了,可是你的电脑不知道
  • 所以每次你想要安装新的软件,或者你的电脑有大的改动【更换了软件源……】,你都需要运行 sudo apt-get update 来更新你的软件源列表

下载安装

  • sudo apt-get install 软件包名
    • -y 在后续安装过程中,如果出现询问是否安装时自动回答 " 是 "
    • --reinstall 重新安装软件包
    • -q 静默安装
    • -d 只下载,不安装
    • -f 修复损坏的依赖关系【用于在 dpkg 安装依赖失败时
bash
sudo apt-get --reinstall -y install 软件包名

如果在安装软件之后,无法使用 `Tab` 键补全这个命令,可以执行 `source ~/.zshrc` 【在当前 shell 中重新加载并执行 `.zshrc` 文件中的命令】

升级

不解决依赖问题

`sudo apt-get upgrade` 会尽量避免升级那些会引发依赖问题的软件包【如果升级一个软件包需要升级,或删除其他的软件包,那么就不会升级这个软件包

  • sudo apt-get upgrade 升级已安装的可更新的所有软件包

解决依赖问题

`dist-upgrade` 有一定的危险性

  • sudo apt-get dist-upgrade 如果某个已安装的软件包的新版本需要更改依赖关系,dist-upgrade 将处理这种依赖关系

卸载软件

mermaid
graph LR
  C[apt-get remove] --> D[删除软件,保留配置文件和被依赖的软件包]
  E[apt-get purge] --> F[删除软件和配置文件,保留被依赖的软件包]
  G[apt-get autoremove] --> H[删除不再需要的被依赖的软件包]

不完全卸载

  • sudo apt-get remove 软件包名 删除软件,不移除软件的配置文件不移除跟该软件有依赖关系的软件包

完全卸载

  • sudo apt-get purge 软件包名 删除软件,移除配置文件,不移除跟该软件有依赖关系的软件包

卸载不再需要的软件包

  • sudo apt-get autoremove 卸载之前被其他软件依赖,但现在不再被使用的软件包

清除安装文件

`/var/cache/apt/archives/` 下存放了所有已下载的软件包安装文件,这些文件在安装,升级完成后,就没有用处了,可以使用 `apt-get clean` 清理硬盘空间


  • apt-get clean 移除在 /var/cache/apt/archives/ 下的所有的软件包
  • apt-get autoclean 只移除不再需要的旧版本的软件包文件

搜索软件包

`apt-cache` 是对本地数据进行相关操作的工具

  • sudo apt-cache search softname1 softname2 softname3…… 确认软件源中搜索有没有某个软件可用,不是搜索已安装的软件包

参数说明
-s模拟安装
--install-suggests同时安装 APT 给出的建议安装的软件包

dpkg 本地安装

[!quote] dpkgdebian packagedpkg 是 Debian 软件包管理器的基础,与 rpm 十分相似,同样被用于安装,卸载,供给 .deb 软件包 相关的信息


  • dpkg 从本地磁盘安装 .deb 软件包
    • -i 安装指定 .deb 包安装时不会自动下载依赖的软件包
    • -I 显示 deb 包文件的信息【依赖的其他软件包 ……】
    • -L 查看已安装软件包的目录信息
    • -R 后面加上目录名,用于安装该目录下的所有 deb 安装包
    • -r 移除某个已安装的软件包
    • -s 显示已安装软件的信息
    • -S 搜索已安装的软件包

bash
sudo apt-get update
# 只下载,不安装
sudo apt-get -d install -y emacs

cp /var/cache/apt/archives/emacs24_24.5+1-6ubuntu1.1_amd64.deb ~

cd ~
# 安装之前参看deb包的信息,发现有依赖其他软件包
sudo dpkg -I emacs24_24.5+1-6ubuntu1.1_amd64.deb

# 使用dpkg安装
sudo dpkg -i emacs24_24.5+1-6ubuntu1.1_amd64.deb
# 出现依赖问题 ……
# 使用 apt-get 解决
sudo apt-get update
sudo apt-get -f -y install 

# 安装成功,运行
emacs24

二进制软件包

  • 从网络上下载的二进制包解压后放到合适的目录
    • 从网络上下载一个二进制包【通常包含了预编译的软件,和其他必要文件的压缩包】
    • 下载完成后,将压缩包解压,并将解压后的文件放到 Linux 系统的一个合适的目录中
  • 将包含可执行的主程序文件的目录添加进 PATH 环境变量
    • 找到解压后包中的可执行文件
    • 将这个主程序文件所在的目录添加到 PATH 环境变量中