010.Debian系统基本操作

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,所以需要什么就在本地仓库中下载什么,然后重新生成索引文件即可。另外也可以直接从外网的软件源同步软件包,参考科大源同步方法与注意事项

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容

  • 各大Linux发行版软件包管理参考(http://www.freeoa.net/osuport/botinstal...
    IRONYT阅读 7,246评论 0 12
  • Debian 10 的代号是 Buster,它是来自 Debian 家族的最新 LTS 发布版本,并包含大量的特色...
    android_yiluo阅读 5,954评论 0 0
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,805评论 0 5
  • 想把自己心里的话都说出来,又找不到合适的人去倾诉。真的就是越长大心里就越孤独吧,想起小的时候,和三五玩伴肆意的...
    小可爱是阿瑶阅读 338评论 0 1
  • 不知不觉中,自己已经上大三了。此时此刻我的心里仿佛有两个小精灵在打架,一个是对社会的憧憬,另一个则是对社...
    5454214阅读 180评论 0 0