我有一个Debian 5 VPS,它为我自己和一些客户端运行LAMP堆栈和Redmine(Ruby)和DokuWiki以用于组织目的。
一个apt-get upgrade请求说,很多软件包会被阻止,但是一个apt-get dist-upgrade请求似乎会导致一个吓人的(我)的软件包列表被删除。 我需要LAMP吗?
以下是命令行中的故事:
user@machine:~$ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages have been kept back: bind9 bind9-host bind9utils dnsutils libapache2-mod-php5 libbind9-50 libdns55 libisccc50 libisccfg50 liblwres50 mysql-client-5.1 mysql-server-5.1 mysql-server-core-5.1 php5 php5-apc php5-cli php5-common php5-curl php5-gd php5-imagick php5-imap php5-mcrypt php5-mysql php5-suhosin php5-tidy 0 upgraded, 0 newly installed, 0 to remove and 25 not upgraded. user@machine:~$ sudo apt-get dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages will be REMOVED libapache2-mod-php5 libdns55 libisc52 mysql-server mysql-server-5.1 php5 php5-cli php5-curl php5-gd php5-imagick php5-imap php5-mcrypt php5-mysql php5-tidy The following NEW packages will be installed libdb4.8 libdns58 libisc50 liblqr-1-0 libltdl7 libonig2 libqdbm14 The following packages have been kept back: mysql-client-5.1 The following packages will be upgraded: bind9 bind9-host bind9utils dnsutils libbind9-50 libisccc50 libisccfg50 liblwres50 mysql-server-core-5.1 php5-apc php5-common php5-suhosin 12 upgraded, 7 newly installed, 14 to remove and 1 not upgraded. Need to get 7698kB of archives. After this operation, 25.9MB disk space will be freed. Do you want to continue [Y/n]? n Abort.
继续进行dist-upgrade是否安全?
使用apt-get dist-upgrade -V输出进行更新:
The following packages will be REMOVED libapache2-mod-php5 (5.3.5-0.dotdeb.1) libdns55 (9.6.ESV.R2+dfsg-0+lenny1) libisc52 (9.6.ESV.R1+dfsg-0+lenny2) mysql-server (5.1.54-0.dotdeb.1) mysql-server-5.1 (5.1.54-0.dotdeb.1) php5 (5.3.5-0.dotdeb.1) php5-cli (5.3.5-0.dotdeb.1) php5-curl (5.3.5-0.dotdeb.1) php5-gd (5.3.5-0.dotdeb.1) php5-imagick (5.3.5-0.dotdeb.1) php5-imap (5.3.5-0.dotdeb.1) php5-mcrypt (5.3.5-0.dotdeb.1) php5-mysql (5.3.5-0.dotdeb.1) php5-tidy (5.3.5-0.dotdeb.1) The following NEW packages will be installed libdb4.8 (4.8.24-1~bpo50+1) libdns58 (9.6.ESV.R3+dfsg-0+lenny1) libisc50 (9.6.ESV.R3+dfsg-0+lenny1) liblqr-1-0 (0.1.0-1) libltdl7 (2.2.6b-2~bpo50+1) libonig2 (5.9.1-1) libqdbm14 (1.8.74-1.4) The following packages have been kept back: mysql-client-5.1 (5.1.54-0.dotdeb.0 => 5.1.54-0.dotdeb.1) The following packages will be upgraded: bind9 (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1) bind9-host (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1) bind9utils (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1) dnsutils (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1) libbind9-50 (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1) libisccc50 (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1) libisccfg50 (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1) liblwres50 (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1) mysql-server-core-5.1 (5.1.54-0.dotdeb.0 => 5.1.54-0.dotdeb.1) php5-apc (5.2.17-0.dotdeb.0 => 5.3.5-0.dotdeb.1) php5-common (5.2.17-0.dotdeb.0 => 5.3.5-0.dotdeb.1) php5-suhosin (5.2.17-0.dotdeb.0 => 5.3.5-0.dotdeb.1) 12 upgraded, 7 newly installed, 14 to remove and 1 not upgraded. Need to get 7698kB of archives. After this operation, 25.9MB disk space will be freed. Do you want to continue [Y/n]?
不,它看起来像很多你的PHP和MySQL的东西被删除,而不是被取代。 我认为在这样的情况下,最好通过aptitude或dselect或其他前端进行升级,在这里你可以找出为什么发生这种情况并修复它,或者至less指示它重新添加包要安装的软件包的列表,所有这些都将在一个操作中被处理。
这些都是从lenny安装的,还是你使用了其他的仓库? mysql-client-5.1仍然被远程升级的事实表明,要么固定到某个特定的版本,要么被取消固定,要么mysql-client-5.1来自不提供的地方一个明确的升级path挤。
编辑基于-V的输出
这些软件包是从dotdeb仓库安装的,其目的是打包最新的,最好的PHP和MySQL软件包,因为Debian通常只有几个版本。
一些事情:检查/etc/apt/preferences存在,如果是这样,请仔细阅读一下,看看是否有其他任何东西,除了固定到特定版本的PHP和MySQL。 如果它存在,它是所有的PHP和MySQL,重命名为.bak 。 其次,确保在/etc/apt/sources.list configuration了dotdeb的squeeze仓库 :
deb http://packages.dotdeb.org stable all deb-src http://packages.dotdeb.org stable all
基于你有PHP 5.3的事实,这可能意味着你需要删除指向http://php53.dotdeb.org的旧行
一旦你完成了这个工作,运行apt-get update ,它会得到当前的软件包列表,然后运行apt-get dist-ugprade 。 如果仍然无法清除,请使用新的dist-upgrade -V更新问题
继续进行dist-upgrade是否安全?
唯一的方法就是确保您的安全,就是通过执行完整的系统备份,您可以轻松恢复。 更好的办法是将系统复制到虚拟机,然后在那里testing升级。
如果你没有logging完整的安装,或者你没有很好的备份,那么你几乎可以肯定不会升级到这个盒子上的新版本,如果它有什么更重要的话。
你有没有考虑询问谁做了原始安装的人有什么需要更新?