码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux知识


    在这里插入图片描述


    文章目录

    • 一、Apt
      • 1、查看操作系统信息
      • 2、换源
      • 3、比较
      • 4、用法
      • 5、ubuntu获取源码
    • 二、系统升级
    • 三、pkg-config
    • 四、调试glibc
    • 五、问题
    • 六、命令
      • 1、export
      • 2、nm
    • 七、编译与链接
    • 八、GNU软件包列表


    一、Apt

    1、查看操作系统信息

    使用以下命令查看本机的操作系统和位数信息:

    uname -m && cat /etc/*release
    
    • 1

    输出:

    x86_64
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=16.04
    DISTRIB_CODENAME=xenial
    DISTRIB_DESCRIPTION=“Ubuntu 16.04.7 LTS”
    NAME=“Ubuntu”
    VERSION=“16.04.7 LTS (Xenial Xerus)”
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME=“Ubuntu 16.04.7 LTS”
    VERSION_ID=“16.04”
    HOME_URL=“http://www.ubuntu.com/”
    SUPPORT_URL=“http://help.ubuntu.com/”
    BUG_REPORT_URL=“http://bugs.launchpad.net/ubuntu/”
    VERSION_CODENAME=xenial
    UBUNTU_CODENAME=xenial

    CPU架构关系:关于i386、x86、x86_64、x64、amd64和arm64、aarch64

    2、换源

    Ubuntu设置清华源
    Ubuntu 软件仓库镜像使用帮助

    添加 PPA 源, PPA 全称为 Personal Package Archives(个人软件包档案)
    add-apt-repository命令详解

    3、比较

    一文搞清apt与apt-get的异同
    apt-get命令详解(超详细)

    apt 与 dpkg 区别
    apt和dpkg包管理器

    4、用法

    # 查询系统中属于nano的文件:
    $ dpkg-query -L vim
    
    • 1
    • 2

    /.
    /usr
    /usr/share
    /usr/share/bug
    /usr/share/bug/vim
    /usr/share/bug/vim/script
    /usr/share/bug/vim/presubj
    /usr/share/doc
    /usr/share/lintian
    /usr/share/lintian/overrides
    /usr/share/lintian/overrides/vim
    /usr/bin
    /usr/bin/vim.basic
    /usr/share/doc/vim

    ubuntu安装/查看已安装包的方法

    # 升级该单个软件包
    sudo apt install --only-upgrade package_name
    # 查看系统中软件包nano的状态, 支持模糊查询:(l的意思是list)
    $ dpkg -l nano
     
    # 查看软件包nano的详细信息:
    $ dpkg -s nano
     
    # 查询系统中属于nano的文件:
    $ dpkg-query -L nano
     
    apt-cache search # ------(package 搜索包)
    apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)
    apt-get install # ------(package 安装包)
    apt-get install # -----(package --reinstall 重新安装包)
    apt-get download # -----(package 从仓库下载安装deb包,可以通过dpkg -x 包名 文件夹名切出来看下包里面的内容)
    apt-get -f install # -----(强制安装, "-f = --fix-missing"当是修复安装吧...)
    apt-get remove #-----(package 删除包)
    apt-get remove --purge # ------(package 删除包,包括删除配置文件等)
    apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
    apt-get update #------更新源
    apt-get upgrade #------更新已安装的包
    apt-get dist-upgrade # ---------升级系统
    apt-get dselect-upgrade #------使用 dselect 升级
    apt-cache depends #-------(package 了解使用依赖)
    apt-cache rdepends # ------(package 了解某个具体的依赖,当是查看该包被哪些包依赖吧...)
    apt-get build-dep # ------(package 安装相关的编译环境)
    apt-get source #------(package 下载该包的源代码)
    apt-get clean && apt-get autoclean # --------清理下载文件的存档 && 只清理过时的包
    apt-get check #-------检查是否有损坏的依赖
    dpkg -S filename #-----查找filename属于哪个软件包
    apt-file search filename #-----查找filename属于哪个软件包
    apt-file list packagename #-----列出软件包的内容
    apt-file update #--更新apt-file的数据库
    dpkg --info "软件包名" #--列出软件包解包后的包名称.
    dpkg -l #--列出当前系统中所有的包.可以和参数less一起使用在分屏查看. (类似于rpm -qa)
    dpkg -l |grep -i "软件包名" #--查看系统中与"软件包名"相关联的包.
    dpkg -s #查询已安装的包的详细信息.
    dpkg -L #查询系统中已安装的软件包所安装的位置. (类似于rpm -ql)
    dpkg -S #查询系统中某个文件属于哪个软件包. (类似于rpm -qf)
    dpkg -I #查询deb包的详细信息,在一个软件包下载到本地之后看看用不用安装(看一下呗).
    dpkg -i #手动安装软件包(这个命令并不能解决软件包之前的依赖性问题),如果在安装某一个软件包的时候遇到了软件依赖的问题,可以用apt-get -f install在解决信赖性这个问题.
    dpkg -r #卸载软件包.不是完全的卸载,它的配置文件还存在.
    dpkg -P #全部卸载(但是还是不能解决软件包的依赖性的问题)
    dpkg -reconfigure #重新配置
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    ubuntu下载deb包及其所有依赖包 - 知乎

    # XXX 为需要下载的 deb 包
    sudo apt download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends XXX | grep -v i386 | grep "^\w")
    
    • 1
    • 2

    linux使用apt命令下载软件和依赖包

    # 1.
    cd /var/cache/apt/archives/
    # 该目录是依赖包默认下载目录
    
    # 2.执行
    sudo apt download ntp
    # ,仅下载ntp安装包
    
    # 3.执行下面命令下载ntp依赖包
    sudo apt-get install --reinstall -d `apt-cache depends ntp | grep "依赖" | cut -d: -f2 |tr -d "<>"`
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    5、ubuntu获取源码

    下载源码两种方式:

    # 1.下载到当前目录
    apt source vim
    sudo apt-get source linux-$(uname -r)
    
    # 2.下载到/usr/src下
    sudo apt install linux-source-4.15.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Ubuntu源代码及如何获取和使用Ubuntu源代码
    ubuntu获取源码方式
    ubuntu20.04 下载 linux源码和编译简单测试模块
    Ubuntu18编译内核源码,并调整版本号
    Ubuntu 14.04.2安装内核源码树以及编译
    ubuntu下载源码(Ubuntu源码)

    二、系统升级

    sudo apt update
    sudo apt upgrade
    sudo do-release-upgrade
    
    • 1
    • 2
    • 3

    若出现:

    Please install all available updates for your release before upgrading.

    sudo apt update
    sudo apt upgrade
    # 解决相依性的问题,如果有相依性问题,需要安装/移除新的 Package,就会试着去安装/移除它. 
    # (所以通常 dist-upgrade 会被认为是有点风险的升级)
    sudo apt dist-upgrade
    sudo do-release-upgrade
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Ubuntu升级到20.04
    Please install all available updates for your release before upgrading
    apt update ,apt upgrade 和 apt dist-upgrade 的区别

    GPG error: file:/var/cudnn-local-repo-ubuntu1804-8.4.1.50 In 解决方案

    三、pkg-config

    pkg-config用法详解

    四、调试glibc

    如何调试glibc
    硬核:如何调试glibc
    glibc的编译、安装和调试
    glibc 知:通用调试技术

    五、问题

    使用ssh登入不执行.bashrc解决方法

    六、命令

    1、export

    Linux命令之导出变量和函数export
    Linux Shell脚本攻略-Bash函数的技巧+将一个命令的输出发送给另一个命令+在不按回车键的情况下读入n个字符

    2、nm

    Linux nm命令详解

    七、编译与链接

    set( CMAKE_SKIP_BUILD_RPATH FALSE) # 编译时加上RPATH
    set( CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) # 编译时RPATH使用安装的RPATH
    set( CMAKE_INSTALL_RPATH "./") # 安装RPATH为当前目录
    set( CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) # 安装的执行文件加上RPATH
    
    • 1
    • 2
    • 3
    • 4

    【C_C++ 库的动态链接】深入理解动态链接器:RPATH, RUNPATH与$ORIGIN
    CMAKE和RPATH
    RPATH RUNPATH 和 LD_LIBRARY_PATH

    八、GNU软件包列表

    GNU软件包列表
    GNU FTP
    GIMP FTP

       

  • 相关阅读:
    Python中主要数据结构的使用
    leetcode 907. 子数组的最小值之和(重做)
    《机器学习》(周志华) 第6章 支持向量 学习心得 笔记
    Web篇_05 Node.js
    前端一阶段进入二阶段后的学习如何进行?
    机器学习(五)如何理解机器学习三要素
    DAMA学习笔记
    ChatGPT 论文助手:如何用 AI 技术加速学术写作过程
    汽车称重软件的秤台和车辆管理有哪些要求(二)
    激活函数与loss的梯度
  • 原文地址:https://blog.csdn.net/Liuqz2009/article/details/133125439
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号