【问题标题】:apt-get install without dependenciesapt-get install 没有依赖
【发布时间】:2016-03-20 19:14:43
【问题描述】:

我正在尝试在我的 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

【问题讨论】:

  • 我建议将此问题移至超级用户或服务器故障,因为它与编程没有太大关系。

标签: debian apt dpkg


【解决方案1】:

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

更好的方法...

所以更好的方法是创建一个你已经安装的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多