美文网首页
010.Debian系统基本操作

010.Debian系统基本操作

作者: CoderJed | 来源:发表于2020-04-24 17:51 被阅读0次

    1. Debian系统基本操作

    1.1 常用服务配置文件路径

    • 网卡配置文件:/etc/network/interfaces
    # 多个网卡都在这一个配置文件中
    
    auto lo
    iface lo inet loopback
    
    # atuo 在系统启动的时候启动网络接口,无论网络接口有无连接
    auto eth0
    iface eth0 inet static
    address 210.14.154.115
    netmask 255.255.255.224
    gateway 210.14.154.113
    
    # allow-hotplug 将此网卡设置为热插拔模式
    # 只有当内核从该接口检测到热插拔事件后才启动该接口。
    # 如果系统开机时该接口没有插入网线,则系统不会启动该接口
    # 系统启动后,如果插入网线,系统会自动启动该接口
    allow-hotplug eth1
    iface eth1 inet static
    address 192.168.5.21
    netmask 255.255.255.0
    
    • 动态添加删除IP地址

      # 网卡上增加一个IP
      ifconfig eth0:2 192.168.47.123 netmask 255.255.255.0
      # 删除网卡的第二个IP地址
      ip addr del 192.168.47.123 dev eth0:2
      
    • 重启网络服务命令:/etc/init.d/networking restart

    • DNS配置文件:/etc/resolv.conf,与CentOS没有区别

    • 软件源配置文件:/etc/apt/sources.list

    1.2 日常操作

    查看系统版本号

    debian@debian-buster:/etc/apt$ cat /etc/debian_version 
    10.3
    

    创建用户,默认不创建家目录

    root@debian-buster:/home# useradd tony
    root@debian-buster:/home# ls
    debian
    
    # -m 创建home目录
    # -g 设置用户的组
    # -d 用户登陆后的起始目录
    # -s 用户使用的bash,这个必须设置,否则默认为/bin/sh
    # Centos的/bin/sh链接到bash,而Debian的/bin/sh链接到dash
    root@debian-buster:/home# groupadd tom
    root@debian-buster:/home# useradd -m tom -g tom -d /home/tom -s /bin/bash
    root@debian-buster:/home# ls
    debian  tom
    root@debian-buster:/home# passwd tom
    New password: 
    Retype new password: 
    passwd: password updated successfully
    

    nohup与start-stop-daemon

    start-stop-daemon是debian的守护进程命令:

    # 使用nohup
    nohup command 2>&1 >> log &
    # 使用start-stop-daemon
    # 开启一个daemon进程
    start-stop-daemon --start --background --exec /root/proxy.py
    # 关闭一个daemon进程
    start-stop-daemon --stop --name proxy.py
    

    系统自启动服务管理

    • 安装sysv-rc-conf

      apt-get install sysv-rc-conf
      
    • 执行sysv-rc-conf命令

    • 使用上下左右定位到服务在某个系统级别下的状态

    • 使用空格修改状态,"X"代表开机启动

    • ctrl + n看下一页,ctrl + p看上一页,q退出,+ 启动服务,-停止服务

    • 常用服务

      acpi-support: 关于电源支持的默认是 1,2,3,4,5 下启动,可以把它调整到S级别
      acpid: acpi的守护程序,默认是2-5开启
      alsa: alsa声音子系统,可以不开启
      alsa-utils: 这个服务似乎取代了alsa,所以开启这个就可以了
      anacron: 这是一个用于执行那些到时间后应该执行却没有执行的程序的服务
      apmd: 也是一种电源管理,电脑如果不是很老,就没有必要开启
      atd: 和anacron类似,与定时执行计划任务相关
      bluez-utiles: 蓝牙服务,可以关闭
      bootlogd: 记录日志的服务
      cron: 定时运行服务
      cupsys: 打印机服务
      dbus: 消息总线系统,非常重要,一定要开
      dns-clean: 拨号连接服务
      evms: 企业卷管理系统
      fetchmail: 邮件服务
      gdm: gnome桌面管理器
      halt: 关机服务,不要更改
      hdparm: 没有ide硬盘就不用开启
      hotkey-setup: 这个是给某些品牌笔记本设计的热键映射,台式机用户可以关闭
      hotplug: 热插拔服务,在某些电脑上关闭它会使声卡无效,建议在S级别开启
      hplip: hp打印机专用的
      ifrename: 网络接口重命名
      ifupdown: 打开网络接口
      ifupdown-clean: 同上
      klogd: Linux 守护程序,接受来自内核的消息并发送到syslogd,并记录为一个文件,重要,不能关闭
      lvm: 逻辑卷管理器,如果没有用可以关了它
      makedev: 用来创建设备到/dev目录,不能关
      mdamd: 管理raid用,如果没有用可以关闭
      module-init-tools: 从/etc/modules扩展模块的,一般开启
      networking: 网络服务,必须开启
      ntp-server: 时间同步服务
      pcmcia: 激活pcmica设备
      powernowd: 用于管理cpu的客户端程序,如果CPU有变频功能,比如amd的quite:cool,就可以开启这个服务
      ppp: 拨号服务
      ppp-dns: 同上
      readahead: 预加载服务,此服务会使系统启动变慢3-4秒,可以关了它
      reboot: 重启机器,不要动它
      rmnologin: 清除nologin
      rsync: rsync守护进程
      screen-cleanup: 一个清除开机屏幕的脚本
      sendsigs: 重启和关机时向所有进程发送消息
      single: 激活单用户模式
      stop-bootlogd: 从2,3,4,5级别停止bootlogd
      sysklogd: 用于记录系统日志信息
      udev: 用户空间dev文件系统
      udev-mab: 同上
      umountfs: 用来卸载文件卷
      urandom: 生成随机数
      usplash: 开机画面支持
      vbesave: 显卡bios配置工具
      xorg-common: 设置X服务ICE socket
      

    防火墙和seliunx

    • Debian默认没有seliunx
    • Debian防火墙默认没有任何规则

    命令的别名

    CentOS中好用的命令别名,在debian中都注释掉了

    root@debian-buster:~# cat .bashrc 
    # ~/.bashrc: executed by bash(1) for non-login shells.
    
    # Note: PS1 and umask are already set in /etc/profile. You should not
    # need this unless you want different defaults for root.
    # PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
    # umask 022
    
    # You may uncomment the following lines if you want `ls' to be colorized:
    # export LS_OPTIONS='--color=auto'
    # eval "`dircolors`"
    # alias ls='ls $LS_OPTIONS'
    # alias ll='ls $LS_OPTIONS -l'
    # alias l='ls $LS_OPTIONS -lA'
    #
    # Some more alias to avoid making mistakes:
    # alias rm='rm -i'
    # alias cp='cp -i'
    # alias mv='mv -i'
    

    root用户远程登录

    debian默认不允许使用root用户远程登录,需要修改/etc/ssh/sshd_config文件:

    # 默认
    #PermitRootLogin prohibit-password
    #PasswordAuthentication yes
    
    # 修改为
    PermitRootLogin yes
    PasswordAuthentication yes
    
    # 重启ssh服务
    /etc/init.d/ssh restart
    

    这样就可以使用root远程连接debian系统了

    默认没有安装rsync服务

    # 手动安装
    apt-get install rsync
    

    修改默认的系统运行级别

    # 查看当前系统运行级别
    root@debian-buster:~# systemctl get-default
    graphical.target
    
    # 查看可供替换的运行级别
    root@debian-buster:~# systemctl list-units --type=target
    UNIT                   LOAD   ACTIVE SUB    DESCRIPTION                
    basic.target           loaded active active Basic System               
    bluetooth.target       loaded active active Bluetooth                  
    cryptsetup.target      loaded active active Local Encrypted Volumes    
    getty.target           loaded active active Login Prompts              
    graphical.target       loaded active active Graphical Interface        
    local-fs-pre.target    loaded active active Local File Systems (Pre)   
    local-fs.target        loaded active active Local File Systems         
    multi-user.target      loaded active active Multi-User System          
    network.target         loaded active active Network                    
    nss-user-lookup.target loaded active active User and Group Name Lookups
    paths.target           loaded active active Paths                      
    remote-fs.target       loaded active active Remote File Systems        
    slices.target          loaded active active Slices                     
    sockets.target         loaded active active Sockets                    
    sound.target           loaded active active Sound Card                 
    swap.target            loaded active active Swap                       
    sysinit.target         loaded active active System Initialization      
    time-sync.target       loaded active active System Time Synchronized   
    timers.target          loaded active active Timers                     
    
    LOAD   = Reflects whether the unit definition was properly loaded.
    ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
    SUB    = The low-level unit activation state, values depend on unit type.
    
    19 loaded units listed. Pass --all to see loaded but inactive units, too.
    To show all installed unit files use 'systemctl list-unit-files'.
    
    # 修改默认系统运行级别方法一
    systemctl set-default multi-user.target
    
    # 修改默认系统运行级别方法二:创建软链接来替换
    root@debian-buster:~# ll /lib/systemd/system | grep "runlevel*"
    lrwxrwxrwx 1 root root   15 Jan 29 18:07 runlevel0.target -> poweroff.target
    lrwxrwxrwx 1 root root   13 Jan 29 18:07 runlevel1.target -> rescue.target
    drwxr-xr-x 2 root root 4096 Jan 29 18:07 runlevel1.target.wants
    lrwxrwxrwx 1 root root   17 Jan 29 18:07 runlevel2.target -> multi-user.target
    drwxr-xr-x 2 root root 4096 Jan 29 18:07 runlevel2.target.wants
    lrwxrwxrwx 1 root root   17 Jan 29 18:07 runlevel3.target -> multi-user.target
    drwxr-xr-x 2 root root 4096 Jan 29 18:07 runlevel3.target.wants
    lrwxrwxrwx 1 root root   17 Jan 29 18:07 runlevel4.target -> multi-user.target
    drwxr-xr-x 2 root root 4096 Jan 29 18:07 runlevel4.target.wants
    lrwxrwxrwx 1 root root   16 Jan 29 18:07 runlevel5.target -> graphical.target
    drwxr-xr-x 2 root root 4096 Jan 29 18:07 runlevel5.target.wants
    lrwxrwxrwx 1 root root   13 Jan 29 18:07 runlevel6.target -> reboot.target
    -rw-r--r-- 1 root root  797 Jan 29 18:07 systemd-update-utmp-runlevel.service
    # 这里把runlevel5.target链接到default.target,其实就是这是系统默认运行级别为graphical.target
    ln -sf /lib/systemd/system/runlevel5.target /lib/systemd/system/default.target
    

    1.3 Debian软件包和CentOS软件包的区别

    CentOS使用yum安装软件,Debian使用apt安装软件

    apt相关配置文件

    文件 说明
    /etc/apt/sources.list 设置软件包的获取来源
    /etc/apt/apt.conf apt配置文件
    /etc/apt/apt.conf.d/ apt的其他各种配置所在的目录
    /etc/apt/preferences 版本参数
    /var/cache/apt/archives/ 存放已经下载的软件包
    /var/cache/apt/archives/partial 存放正在下载的软件包
    /var/lib/apt/lists/ 存放已经下载的软件包详细信息
    /var/lib/apt/lists/partial/ 存放正在下载的软件包详细信息

    apt-get命令的子命令

    子命令 说明
    update 更新软件包列表
    upgrade 升级系统中的所有软件包
    install 安装软件包
    remove 卸载软件包
    autoremove 仅删除不需要再次下载的软件包
    purge 彻底删除软件包,包括配置文件
    source 下载源代码
    build-dep 自动下载安装编译某个软件所需要的软件包
    dist-upgrade 升级整个发行版
    clean 删除本地缓存的所有升级包
    autoclean 删除本地缓存中无用的软件包
    check 检查是否存在有问题的依赖关系

    apt-get命令选项

    选项 说明
    -d,--download-only 仅下载,不安装
    -f,--fix-broken 修复依赖问题,用于install和remove子命令
    -m,--ignore-missing,--fix-missing 忽略缺失的软件包,遇到无法下载的软件包,自动忽略
    --no-download 禁止下载软件包,与-m配合,可以使apt只使用已经下载的软件包
    -q,--quiet 静默模式,输出的信息适合做日志
    -s,--simulate,--just-print 模拟测试,不做出实际操作,不改变系统
    -y,--yes,--assume-yes 在系统提问时,自动应答yes
    -u,--show-upgraded 显示已升级的软件包
    -V,--verbose-versions 显示已安装和已升级的软件包的完整版本号
    -b,--compile,--build 在源码包下载完成后进行编译
    --ignore-hold 忽略被保留的软件包
    --no-upgrade 不要升级软件包
    --force-yes 强制回答yes
    --print-uris 仅打印软件包地址,不安装
    --purge 彻底删除,包括配置文件
    --reinstall 重新安装软件包

    apt-cache命令

    功能:搜索某个软件包的名字或者显示某个软件包的详细信息

    示例 说明
    apt-cache search mysql 搜索mysql的软件包
    apt-cache show ssh 查看ssh软件包的详细版本号

    CentOS和Debian软件包操作对比

    操作内容 CentOS Debian
    基本信息
    软件包后缀 .rpm .deb
    软件源配置文件 /etc/yum.conf /etc/apt/sources.list
    安装、删除、升级软件包
    更新软件包列表 每次运行yum时自动执行 apt-get update
    从软件仓库中安装软件 yum install package apt-get install package
    安装一个已下载的软件包 yum install pkg.rpm
    rpm -i pkg.rpm
    dpkg -i pkg.deb
    pkg --install pkg.deb
    删除软件包 rpm -e package apt-get remove package
    软件包升级检查/测试 yum check-update apt-get -s upgrade
    apt-get -s dist-upgrade
    升级软件包 yum update
    rpm -Uvh [args]
    apt-get upgrade
    升级整个系统 yum upgrade apt-get dist-upgrade
    获取软件包信息
    获取某个软件包的信息 yum search package apt-cache show package
    获取所有软件包的信息 yum list available apt-cache dumpavail
    显示所有已安装的软件 yum list installed
    rpm -qa
    dpkg -l
    dpkg --list
    获取某个已安装软件包的信息 yum info package
    rpm -qi package
    dpkg --status package
    列出某个已安装软件包所包含的文件列表 rpm -ql package
    列出某个已安装软件包所包含的文档 rpm -qd package
    列出某个已安装软件包所包含的配置文件 rpm -qc package
    显示某个软件包所依赖的软件包列表 rpm -qR package apt-cache depends package
    显示某个软件包的反向依赖关系 rpm -q -whatrequires [args] apt-cache rdepends package
    软件包文件信息
    获取某个软件包文件的信息 rpm -qpi pkg.rpm dpkg --info pkg.deb
    获取某个软件包文件所包含的文件列表 rpm -qpl pkg.rpm dpkg --contents pkg.deb
    获取某个软件包文件所包含的文档 rpm -qpd pkg.rpm
    获取某个软件包文件所包含的配置文件 rpm -qpc pkg.rpm
    软件包解压 rpm2cpio pkg.rpm dpkg-deb --extract pkg.deb
    搜索某个文件是由哪个软件包安装的 rpm -qf /file/name dpkg -S /file/name
    dpkg --search /file/name
    搜索所有提供某个文件的软件包 yum provides /file/name apt-file search /file/name
    其他
    显示本地软件包缓存的状态 apt-cache stats
    校验所有已安装的软件包 rpm -Va debsums
    删除本地缓存的所有软件包 yum clean packages apt-get clean
    仅删除本地缓存中过时的软件包 apt-get autoclean
    删除所有软件包信息 yum clean headers apt-file purge

    debian软件源sources.list文件格式说明

    /etc/apt/sources.list

    # 格式
    # deb/deb-src ftp或者http地址 版本号 限定词
    
    deb http://mirrors.163.com/debian/ buster main
    deb-src http://mirrors.163.com/debian/ buster main
    
    deb http://security.debian.org/debian-security buster/updates main
    deb-src http://security.debian.org/debian-security buster/updates main
    
    deb http://mirrors.163.com/debian/ buster-updates main
    deb-src http://mirrors.163.com/debian/ buster-updates main
    

    第一部分:deb/deb-src

    • deb:软件位置
    • deb-src:软件源代码位置

    第二部分:系统镜像地址

    以下为网易的debian镜像站中的内容:

    • dists:此目录是获得Debian发布版本(releases)和预发布版本(pre-releases)的软件包的正规途径,有些旧软件包及packages.gz文件也在里面

    • pool:此目录为软件包的物理地址,软件包都放进一个巨大的"池"(pool)中,按照源码包名称分类存放,为了方便管理,pool目录下按属性再分类(main、contrib和non-free),分类下面再按源码包名称的首字母归档,这些目录包含的文件有:运行于各种系统架构的二进制软件包、生成这些二进制软件包的源码包、可以执行命令apt-cache showsrc package来查看软件包的存放位置,例如apache软件包存放在pool/main/a/apache/ 目录中,另外,由于lib*软件包数量巨大,所以它们以特殊的方式归档,例如,libpaper软件包存放在pool/main/libp/libpaper/

      root@debian-buster:~# apt-cache showsrc i2pd
      Package: i2pd
      Binary: i2pd
      Version: 2.23.0-1
      Maintainer: Yangfl <mmyangfl@gmail.com>
      Build-Depends: debhelper (>= 12~), libboost-system-dev (>= 1.46), libboost-date-time-dev, libboost-filesystem-dev, libboost-program-options-dev, libminiupnpc-dev, libssl-dev, zlib1g-dev, cmake, libwebsocketpp-dev
      Architecture: any
      Standards-Version: 4.3.0
      Format: 3.0 (quilt)
      Files:
       366f33aefb89eb9c8ac5850dbb4b2ccf 1952 i2pd_2.23.0-1.dsc
       b3815eab442230414a66be7e4b7de617 1008677 i2pd_2.23.0.orig.tar.gz
       5538ad75732afa9cddff94c76ec0d509 6684 i2pd_2.23.0-1.debian.tar.xz
      Vcs-Browser: https://salsa.debian.org/yangfl-guest/i2pd
      Vcs-Git: https://salsa.debian.org/yangfl-guest/i2pd.git
      Checksums-Sha256:
       d4b825caa40d563f3f64b867ca0a83ef74eafe4f017ecb9fead603ca1477b554 1952 i2pd_2.23.0-1.dsc
       19e8573b44b94ce83bd5705569934049cb1dc39db11449abcb9e4b36afe5a279 1008677 i2pd_2.23.0.orig.tar.gz
       353873a700017e85cc9d318d126209d28bf9f805784cd1d975e20e7f1c20621f 6684 i2pd_2.23.0-1.debian.tar.xz
      Homepage: https://i2pd.website
      Package-List: 
       i2pd deb net optional arch=any
      # 软件包的位置
      Directory: pool/main/i/i2pd
      Priority: extra
      Section: misc
      
    • tools:用于创建启动盘、磁盘分区、压缩/解压文件、启动Linux的DOS等功能的小工具

    • doc:基本的Debian文档,如FAQ,错误报告系统指导等

    • indices:维护人员文件和重载文件

    • project:大部分为开发人员的资源,如project/experimental目录下包含了处于开发中的软件包和工具,它们均处于alpha测试阶段,用户不应该使用这些软件

    第三部分:系统版本号

    dists目录下的子目录就是按照Debian的系统版本分类的:

    总的来说,分为以下4类:

    • oldstable:旧的稳定发行版,oldstable是目前稳定发行版的上一个版本的链接,例如目前稳定版本是10.3,上一个版本是9.12,所以oldstable目录与Debian9.12下的文件一模一样
    • stable:目前的稳定发行版,每个Debian系统都有一个代号,debian6叫做squeeze,debian7叫做wheezy,所以stable就是目前稳定版本的一个链接,目前稳定版为buster,所以stable目录下的内容和buster目录下的内容一模一样
    • testing:目前还暂时处于测试阶段的debian发行版,如buster下个版本是bullseye,所以testing目录就是bullseye目录
    • unstable:不稳定版本了,是sid目录的链接,debian的发行版本名称大都来自玩具总动员中的角色名称,而sid就是那个专门破坏玩具的邻居家坏小孩,所以就把unstable这个不稳定的软件目录起名为sid了,这里面的软件一般都是最新的,稳定性、安全稳定值得商榷,经过一段时间的测试,这里面的软件可能会进入下一个阶段,出现在testing目录,然后就有可能出现在下一个debian发行版中,当然也有直接被放弃的软件

    第四部分:限定词

    进入某个版本的目录后,又会根据一些属性分成多个目录:

    • main:Debian最基本及主要的且符合自由软件规范的软件(packages)
    • contrib:这里头的软件虽然可以在Debian系统中运行,本身属于自由软件,但却依赖于非自由(non-free)软件
    • non-free:不属于自由软件范畴的软件
    • non-us:这个分类中的软件都来自非美国地区,其中可能有牵扯到专利、加密等问题
    • marillat:对应Christian Marillat的软件仓库,包括mplayer,transcode等
    • rareware: 对应rarewares.org的软件仓库,包括很多音效程序,如lame、musepack、beep media player等
    • ustc:对应debian@ustc维护的一些软件包,如 mule-gbk、gaim-openq、scim、stardict dicts、patched xpdf、irssi、xmms等
    • java:对应Blackdown java,包括 j2re、j2sdk、mozilla java plugin
    • firefly:对应打过firefly补丁的包,包括fontconfig、mozilla、mozilla-firefox、pango1.0、qt-x1-free、xft
    • misc:对应其它无分类的包,包括nvidia-kernel、winex3、rox、chmsee等

    以下为清华大学镜像站的debian buster的sources.list配置:

    # 如果遇到无法拉取https源
    # 就把下面的地址中的https都改为http
    # 或者使用sudo apt install apt-transport-https ca-certificates来安装https的支持
    
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
    deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
    

    修改了软件源之后可以执行apt-get update命令更新软件包列表信息,使用apt-get dist-upgrade对系统进行全面升级

    1.4 debian本地软件仓库的搭建

    • 创建www用户组和www用户

      groupadd www -g 888
      useradd www -u 888 -g 888 -M -s /sbin/nologin
      
    • 安装nginx

      apt-get install nginx
      
    • 查看软件包信息

      dpkg -S nginx
      
    • 查看nginx配置文件

      root@debian-buster:~# egrep -v "^#|^.*#|^$" /etc/nginx/nginx.conf
      user www-data;
      worker_processes auto;
      pid /run/nginx.pid;
      include /etc/nginx/modules-enabled/*.conf;
      events {
        worker_connections 768;
      }
      http {
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        ssl_prefer_server_ciphers on;
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
        gzip on;
        include /etc/nginx/conf.d/*.conf;
        # 把这一行注释掉
        # include /etc/nginx/sites-enabled/*;
      }
      
    • 创建一个目录用作软件仓库

      mkdir -p /data/deb
      chown -R www:www /data
      
    • 创建/etc/nginx/conf.d/apt-deb.conf文件,内容如下:

      server {
        listen 8080;
        server_name localhost;
        autoindex on;
        location / {
          index index.html index.htm;
          root /data/deb;
        }
      }
      
    • 启动nginx

      systemctl start nginx
      
    • 访问服务

      目前还没有任何包

    • 下载包

      # 只下载不安装
      
      # 清空缓存
      root@debian-buster:~# apt-get clean
      
      # 查看/var/cache/apt/archives
      root@debian-buster:~# tree -F /var/cache/apt/archives/
      /var/cache/apt/archives/
      ├── lock
      └── partial/
      
      # 下载一个包,只下载不安装
      root@debian-buster:~# apt-get install -d screen
      
      # 查看缓存目录
      root@debian-buster:~# tree -F /var/cache/apt/archives/
      /var/cache/apt/archives/
      ├── libutempter0_1.1.6-3_amd64.deb
      ├── lock
      ├── partial/
      └── screen_4.6.2-3_amd64.deb
      
      # 移动下载好的包到仓库目录下
      root@debian-buster:~# mv /var/cache/apt/archives/screen_4.6.2-3_amd64.deb /data/deb/
      root@debian-buster:~# mv /var/cache/apt/archives/libutempter0_1.1.6-3_amd64.deb /data/deb/
      
    • 这时就可以在页面看到刚才下载的包了

    • 更新本地仓库的索引信息

      索引信息中包括各个包的元数据信息,而不是包本身,每次仓库只要发生变动,就应该更新索引信息

      root@debian-buster:~# apt-get install dpkg-dev
      root@debian-buster:~# cd /data/deb/
      root@debian-buster:/data/deb# dpkg-scanpackages ./ /dev/null | gzip -9c > Packages.gz
      dpkg-scanpackages: warning: Packages in archive but missing from override file:
      dpkg-scanpackages: warning:   libutempter0 screen
      dpkg-scanpackages: info: Wrote 2 entries to output Packages file.
      # 查看索引压缩包的内容
      root@debian-buster:/data/deb# zcat Packages.gz
      
    • 客户端配置,修改/etc/apt/sources.list文件

      # 只留局域网内的这个源
      deb [trusted=yes] http://10.0.0.200:8080/ /
      
    • 客户端测试

      root@debian-buster:/etc/apt# apt-get update
      Ign:1 http://10.0.0.200:8080  InRelease
      Ign:2 http://10.0.0.200:8080  Release
      Ign:3 http://10.0.0.200:8080  Packages
      Ign:4 http://10.0.0.200:8080  Translation-en
      Ign:5 http://10.0.0.200:8080  Translation-en_GB
      Ign:3 http://10.0.0.200:8080  Packages
      Ign:4 http://10.0.0.200:8080  Translation-en
      Ign:5 http://10.0.0.200:8080  Translation-en_GB
      Ign:3 http://10.0.0.200:8080  Packages
      Ign:4 http://10.0.0.200:8080  Translation-en
      Ign:5 http://10.0.0.200:8080  Translation-en_GB
      Get:3 http://10.0.0.200:8080  Packages [1,066 B]
      Ign:4 http://10.0.0.200:8080  Translation-en
      Ign:5 http://10.0.0.200:8080  Translation-en_GB
      Ign:4 http://10.0.0.200:8080  Translation-en
      Ign:5 http://10.0.0.200:8080  Translation-en_GB
      Ign:4 http://10.0.0.200:8080  Translation-en
      Ign:5 http://10.0.0.200:8080  Translation-en_GB 
      Ign:4 http://10.0.0.200:8080  Translation-en    
      Ign:5 http://10.0.0.200:8080  Translation-en_GB
      Fetched 1,066 B in 0s (52.1 kB/s)
      Reading package lists... Done
      
      # 安装screen
      root@debian-buster:/etc/apt# apt-get install screen
      Reading package lists... Done
      Building dependency tree       
      Reading state information... Done
      The following additional packages will be installed:
        libutempter0
      Suggested packages:
        byobu | screenie | iselect
      The following NEW packages will be installed:
        libutempter0 screen
      0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
      Need to get 611 kB of archives.
      After this operation, 1,061 kB of additional disk space will be used.
      Do you want to continue? [Y/n] Y
      Get:1 http://10.0.0.200:8080  libutempter0 1.1.6-3 [7,812 B]
      Get:2 http://10.0.0.200:8080  screen 4.6.2-3 [603 kB]
      Fetched 611 kB in 0s (49.3 MB/s)
      Selecting previously unselected package libutempter0:amd64.
      (Reading database ... 133533 files and directories currently installed.)
      Preparing to unpack .../libutempter0_1.1.6-3_amd64.deb ...
      Unpacking libutempter0:amd64 (1.1.6-3) ...
      Selecting previously unselected package screen.
      Preparing to unpack .../screen_4.6.2-3_amd64.deb ...
      Unpacking screen (4.6.2-3) ...
      Setting up libutempter0:amd64 (1.1.6-3) ...
      Setting up screen (4.6.2-3) ...
      Processing triggers for man-db (2.8.5-2) ...
      Processing triggers for libc-bin (2.28-10) ...
      Processing triggers for systemd (241-7~deb10u3) ...
      
    • 问题

      如果-y选项不生效,即指定-y,但是安装软件的时候还是需要手动确认,那么在/etc/apt/apt.conf.d/02allow-unsigned文件中添加如下一行:

      APT::Get::AllowUnauthenticated 1;
      

      文件不存在的话直接创建,然后重新apt-get update

      另外,我这里的本地仓库里只有两个包,我们可以将镜像站的所有包都下载下来,但是会占用很大的磁盘,可能有几百G,所以需要什么就在本地仓库中下载什么,然后重新生成索引文件即可。另外也可以直接从外网的软件源同步软件包,参考科大源同步方法与注意事项

    相关文章

      网友评论

          本文标题:010.Debian系统基本操作

          本文链接:https://www.haomeiwen.com/subject/gstzihtx.html