zoukankan      html  css  js  c++  java
  • Linux包系列的知识(附:Ubuntu16.04升级到18.04的案例)

    Linux基础:https://www.cnblogs.com/dunitian/p/4822808.html#linux

    之前看到朋友还动不动 apt-get update upgrade,就很纳闷,后来发现原来他只是知道这个更新命令却不知其意,所以每次安装个包就把所有apt-get的常用清除+更新命令打一遍

    后来~就有了这篇文章了,算给小白普及下吧:(后面有实战案例)

    Ubuntu不得不说的就是这个apt出问题的处理 :(换源就不说了`/etc/apt/sources.list`)

    # 一般删除这几个锁文件,然后再重新配置下就可以了
    sudo rm /var/lib/dpkg/lock
    sudo rm /var/lib/dpkg/lock-frontend
    sudo rm /var/lib/apt/lists/lock
    sudo rm /var/cache/apt/archives/lock
    # 简写(千万注意空格,不然你就是rm -rf / + 跑路了)
    # sudo rm /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock sudo rm /var/lib/dpkg/lock-frontend

    # 重新配置下
    sudo dpkg --configure -a

    简单讲:你不修改添加源,不需要updae,如果你想升级下软件upgrade,如果你想大升级dist-upgrade

    包相关命令:

    清除无用包:apt-get clean && apt-get autoclean   #一般用apt-get autoclean就够了

    更新源:apt-get update    #同步 /etc/apt/sources.list 源的索引,这样才知道是不是有最新的包

    更新包:apt-get upgrade   #更新所有已安装的软件(upgrade只是简单的更新包,不管这些依赖,它不添不删。)

    更新包2:apt-get dist-upgrade #包与包之间存在各种依赖关系。而dist-upgrade可以根据依赖关系的变化添删包。(依赖有时会出错,建议新手谨慎使用

    补充:在执行 upgrade or dist-upgrade 之前一定要执行 update, 这样才能获取最新

    安装软件:apt-get install XXX [--reinstall] #--reinstall 是重新安装包,一般都是用 apt-get install XXX

    修复依赖:apt-get -f install       #修复依赖,类似于win里面的缺少dll,-f之后他帮你修复安装一些依赖(安装搜狗拼音实例有用到)

    删除软件:apt-get remove XXX [--purge] #--purge 卸载的时候把配置文件也删了,完全删除包可以用这个选项:apt-get remove XXX --purge

    ---------------------------------------------------------------------------------------------------------------------------------------------------------

    其他命令:(特殊环境下使用)

    搜索软件:apt-get search xxx

    检查是否有损坏的依赖:apt-get check   (偶尔想起来或者软件打不开的时候使用【有时候被清理了】)

    获取包信息:apt-cache show xxx

    有哪些依赖:apt-cache depends xxx    (比如安装一个包,修复依赖也失败,那就看看有哪些依赖,自己手动安装)

    被哪些包依赖:apt-cache rdepends xxx  (比如卸载一个包的时候,查一下被哪些包依赖)

    下载该包源代码:apt-get source xxx

    安装相关编译环境:apt-get build-dep xxx

    实战案例:

    简单说下,先清一下无用包,再update更新下源的索引,接着升级。之前一直以为dist-upgrade之后系统就滚动升级了,比如原来16.04.1后来可能变成16.04.2。

    reboot重启一下,update-manager -d 运行更新管理,点下升级,一路下一步就好了(逆天是懒人一个,系统大版本跨越的命令基本上很少用,所以就懒得记了,附录有命令安装

    dnt@MZY-PC:~$ sudo apt-get clean 
    dnt@MZY-PC:~$ sudo apt-get autoclean 
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    dnt@MZY-PC:~$ sudo apt-get update 
    忽略:1 http://dl.google.com/linux/chrome/deb stable InRelease
    命中:2 http://archive.ubuntukylin.com:10006/ubuntukylin xenial InRelease       
    命中:3 http://dl.google.com/linux/chrome/deb stable Release                    
    命中:4 http://mirrors.ustc.edu.cn/ubuntu xenial InRelease                      
    命中:6 http://mirrors.ustc.edu.cn/ubuntu xenial-updates InRelease      
    命中:7 http://mirrors.ustc.edu.cn/ubuntu xenial-security InRelease    
    命中:8 http://packages.microsoft.com/repos/vscode stable InRelease
    正在读取软件包列表... 完成                       
    dnt@MZY-PC:~$ sudo apt-get upgrade 
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    正在计算更新... 完成
    下列软件包的版本将保持不变:
      cups-filters cups-filters-core-drivers gir1.2-javascriptcoregtk-4.0
      gir1.2-webkit2-4.0 google-chrome-stable libjavascriptcoregtk-4.0-18
      libwebkit2gtk-4.0-37 libwebkit2gtk-4.0-37-gtk2 linux-generic-hwe-16.04
      linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
      linux-signed-generic-hwe-16.04 linux-signed-image-generic-hwe-16.04 qpdf
    升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 14 个软件包未被升级。
    dnt@MZY-PC:~$ cat /etc/issue
    Ubuntu 16.04.4 LTS 
     l
    
    dnt@MZY-PC:~$ sudo apt-get dist-upgrade 
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    正在计算更新... 完成
    下列软件包是自动安装的并且现在不需要了:
      libappindicator1 libindicator7
    使用'sudo apt autoremove'来卸载它(它们)。
    下列【新】软件包将被安装:
      amd64-microcode intel-microcode iucode-tool libqpdf21 libwebpdemux1 linux-headers-4.13.0-43 linux-headers-4.13.0-43-generic
      linux-image-4.13.0-43-generic linux-image-extra-4.13.0-43-generic linux-signed-image-4.13.0-43-generic
    下列软件包将被升级:
      cups-filters cups-filters-core-drivers gir1.2-javascriptcoregtk-4.0 gir1.2-webkit2-4.0 google-chrome-stable libjavascriptcoregtk-4.0-18
      libwebkit2gtk-4.0-37 libwebkit2gtk-4.0-37-gtk2 linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
      linux-signed-generic-hwe-16.04 linux-signed-image-generic-hwe-16.04 qpdf
    升级了 14 个软件包,新安装了 10 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
    需要下载 143 MB 的归档。
    解压缩后会消耗 300 MB 的额外空间。
    您希望继续执行吗? [Y/n] y
    获取:1 http://mirrors.ustc.edu.cn/ubuntu xenial-updates/main amd64 libqpdf21 amd64 8.0.2-3~16.04.1 [315 kB]
    获取:2 http://dl.google.com/linux/chrome/deb stable/main amd64 google-chrome-stable amd64 66.0.3359.181-1 [52.3 MB]
    获取:3 http://mirrors.ustc.edu.cn/ubuntu xenial-updates/main amd64 cups-filters-core-drivers amd64 1.8.3-2ubuntu3.4 [128 kB]
    获取:4 http://mirrors.ustc.edu.cn/ubuntu xenial-updates/main amd64 cups-filters amd64 1.8.3-2ubuntu3.4 [448 kB]
    
    dnt@MZY-PC:~$ reboot
    
    dnt@MZY-PC:~$ cat /etc/issue
    Ubuntu 16.04.4 LTS 
     l
    
    dnt@MZY-PC:~$ sudo update-manager -d
    [sudo] dnt 的密码: 
    /usr/bin/update-manager:28: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
      from gi.repository import Gtk
    /usr/lib/python3/dist-packages/UpdateManager/UnitySupport.py:29: PyGIWarning: Dbusmenu was imported without specifying a version first. Use gi.require_version('Dbusmenu', '0.4') before import to ensure that the right version gets loaded.
      from gi.repository import Dbusmenu, Unity
    /usr/lib/python3/dist-packages/UpdateManager/UnitySupport.py:29: PyGIWarning: Unity was imported without specifying a version first. Use gi.require_version('Unity', '7.0') before import to ensure that the right version gets loaded.
      from gi.repository import Dbusmenu, Unity

    附录:(原文地址

    1. 更新Ubuntu 16.04 

      在升级之前, 您应该先更新当前的16.04. 建议升级之前更新/升级所有已安装的软件包.

      运行以下命令:

      sudo apt update && sudo apt dist-upgrade && sudo apt autoremove

    2. 安装Ubuntu update manager

      更新完 系统后,运行以下命令安装update-manager-core(如果您没有安装).

      sudo apt-get isntall update-manager-core

    3. 打开update-manager配置文件并确保提示行设置为 lts

      sudo nano /etc/update-manager/release-upgrades

      执行升级命令:

      sudo do-release-upgrade -d

      当屏幕出现升级提示是 选择y

      等待所有的软件包下载...安装...到重启... 当安装完成后,你的系统就升级到最新的Ubuntu开发版本

  • 相关阅读:
    LINQ学习笔记(4) 扩展方法
    LINQ学习笔记(2) 匿名类型
    jQuery选择器总结
    C#3.0学习笔记(9)转换
    C#3.0学习笔记(11)枚举数和foreach语句实现原理
    C#3.0学习笔记(7)浅谈委托
    C#3.0学习笔记(10)泛型
    中亚网络面试总结
    C#3.0学习笔记(8)浅谈接口interface
    通过VS2010的内存分析工具来分析程序性能问题
  • 原文地址:https://www.cnblogs.com/dunitian/p/9095641.html
Copyright © 2011-2022 走看看