apt-get 安装没有依赖项

apt-get install without dependencies

我正在尝试在我的 vps 以及我从源代码安装的 Maraiadb 上安装 phpmyadmin。 Mariadb 10.1.12 没问题 运行 。 当我尝试安装 phpmyadmin

apt-get install phpmyadmin

然后显示

The following extra packages will be installed:
  libdbd-mysql-perl libmysqlclient18 mysql-client mysql-client-5.5 mysql-common php5-mysql
Suggested packages:
  mysql-server maridadb-server virtual-mysql-server www-browser
The following NEW packages will be installed:
  libdbd-mysql-perl libmysqlclient18 mysql-client mysql-client-5.5 mysql-common php5-mysql phpmyadmin
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.

如果我按 y 继续它,那么之后我的 Mariadb 就不能工作了,它会出现套接字问题,

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")

可能是由于 mysql-client 安装了 phpmyadmin,然后为了修复它我清除了 mysql 包,

sudo apt-get --purge remove "mysql*"

然后 mariadb 又开始正常工作了。

所以我想知道我是否可以在没有这些依赖项的情况下安装 phpmyadmin,我试图在

中找到 phpmyadmin
/var/lib/dpkg/status

这样我就可以删除它的依赖项,但是 phpmyadmin 不在列表中:(

我正在使用 debian 8 jessie

phpmyadmin 似乎有一个 sql 服务器作为依赖,因此它默认安装 mysql。因为您已经安装了 Mariadb 的自编译版本,所以这会导致问题。在您的情况下,mysql 似乎使用了您实际想要用于 Mariadb 的套接字。 您当然可以更改这两个 sql 服务器的 ports/sockets,以便它们可以同时 运行,但是 运行 两个 sql 服务器没有多大意义同时在同一台服务器上。

更好的方法...

所以更好的方法是为您安装的 mysql 服务器创建一个假包。您可以使用 equivs 执行此操作。更多信息:How to tell apt that dependencies are resolved manually?.

所以在你的情况下,你应该弄清楚 Debian 安装了哪些 maraiadb 包,并伪造你知道你已经在你的服务器上安装了内容的每个包。

这是我的一般指南

如何使用等价物

我建议你在处理假包时使用新文件夹。 (mkdir ~/fakepackages && cd ~/fakepackages)

  1. 获取你要仿冒的程序原包:apt-get download mypackage
  2. 获取.deb文件的控制文件。 您可以通过提取 .deb 文件并找到控制文件来完成此操作。

    我推荐以下步骤:

    1. 创建一个新目录并移入其中:mkdir package&&cd package(您可以在下载 .deb 文件之前执行此操作)
    2. ar xv package.deb
    3. tar xzf control.tar.gz
    4. 将控制文件复制到您找到它的地方:cp control ../mypackage.ctl.orig
    5. 退出目录并删除它:cd ..rm -rf package
  3. 保持控制文件打开。
  4. 新建一个控制文件:equivs-control mypackage.ctl
  5. 它会给你一个模板。现在结合您所知道的关于您已安装并想要伪造的(自编译)程序的信息以及原始控制文件的信息来创建您的伪造控制文件。您应该尝试添加尽可能多的真值。至少提供这些值很重要:

    • 部分
    • 套餐
    • 提供(如果原控制文件有)
    • 描述

    请在描述中注明是假货

  6. 构建假包:equivs-build mypackage.ctl
  7. 安装假包:sudo dpkg -i mypackage_1.0.deb