浅谈Linux下dpkg、apt-get、yum和rpm命令的区别

NO.1 问题引入

    小编最近一直进行国产化输入法测试,国产化系统基本上都是基于Linux搭建来的,不同系统安装输入法的命令也是不一样;比如uos(统信)系统用dpkg或者apt-get来安装,而中标麒麟则是用yum或者rpm来安装,那么它们到底有什么区别那?

NO.2 Linux派系

  说到Linux不得不说它的两大派系:

  1.RedHat系列:Redhat、Centos、Fedora 等;中标麒麟也是这个系列的;

  2.Debian系列:Debian、Ubuntu 等;uos,银河麒麟等则是依附这个系列的。

NO.3 RedHat系列:

Rpm:

    常见的安装包格式 rpm 包,安装rpm包的命令是“rpm -参数 安装包名”。如:

    安装命令:

    Sudo rpm –ivh 安装包.rpm

    卸载命令:

    Sudo rpm –e 安装包.rpm

    rpm是由RedHat开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时,所以此时yum的优势就体现出来了。

Yum:

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。弊端是必须联网,且源不出问题,yum的源相对脆弱,曾经出现yum的电源断掉了需要修复半个月无法使用的现象。

    安装命令:

    Sudo yum install 安装包.rpm

    卸载命令:

    Sudo yum autoremove 安装包.rpm

NO.4 Debian系列:

Dpkg:

    常见的安装包格式 deb 包,安装 deb 包的命令是“dpkg -参数 安装包名”。如:

    安装命令:

    Sudo dpkg –i 安装包.deb

    卸载命令:

    Sudo dpkg –P 安装包.deb

  dpkg是Debian Package 的简写。为 Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux 发行版都使用 dpkg,例如 Ubuntu、Knoppix 等。

Apt-get:

    apt-get命令是Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个包管理系统。deb包可以把一个应用的文件包在一起,大体就如同Windows上的安装文件。常用命令:

    更新系统源:

    Sudo apt-get update

NO.5 总结

NO.6 感受

     近两年国产化系统异军突起,相信很快会在国内市场上占有一席之地,对于国产化系统可能目前还尚不成熟,但是我相信总有一天它会在我们生活中成为重要的工作伙伴。

### 使用 Yum 替代 Apt-get 的挑战 通常情况下,在基于 Debian 的系统中,默认使用的包管理工具是 `apt-get` 或其前端如 `apt`。然而,YUM 是 Red Hat 系列发行版的主要包管理系统[^1]。 直接在 Debian 上安装并使用 YUM 并不是一个推荐的做法,因为这可能会引起依赖关系冲突其他兼容性问题。不同 Linux 发行版之间的库版本支持特性存在差异,强行混合使用可能导致系统不稳定甚至无法正常工作。 如果确实有需求跨平台使用某些功能,建议考虑以下几种替代方案: #### 安装特定 RPM 软件包而不替换整个包管理系统 对于个别需要从 RPM 源获取的应用程序,可以仅安装该应用程序及其必要的依赖项,而不是试图完全切换到 YUM 作为主要包管理器。可以通过 `alien` 工具来转换 `.rpm` 文件为适合 Debian 的 `.deb` 格式再进行安装: ```bash sudo apt-get update && sudo apt-get install alien rpm cd /path/to/rpm/file sudo alien --scripts your-package.rpm sudo dpkg -i *.deb ``` 这种方法允许单独处理来自其他发行版的软件包而不会影响现有的 APT 设置[^2]。 #### 构建容器化环境运行不同的包管理命令 另一个更安全的选择是在 Docker 容器或其他形式的虚拟环境中创建一个类似于 CentOS/RHEL 的环境,在其中执行 YUM 命令。这样可以在不影响主机系统的前提下测试或部署那些专门为 RHEL/CentOS 设计的服务应用。 ```dockerfile FROM centos:latest RUN yum install -y httpd php mysql CMD ["httpd", "-D", "FOREGROUND"] ``` 通过这种方式,即使遇到任何配置错误也只会影响隔离出来的容器实例而非真实的服务器操作系统本身。 #### 双重引导或多系统共存策略 最后一种方法涉及在同一硬件上设置多个独立的操作系统分区,每个都可以有自己的包管理软件生态链路。不过这种做法增加了维护成本技术复杂度,一般适用于开发人员或者特殊应用场景下的用户群体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值