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 日常操作
查看系统版本号
代码语言:javascript复制debian@debian-buster:/etc/apt$ cat /etc/debian_version
10.3
创建用户,默认不创建家目录
代码语言:javascript复制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中都注释掉了
代码语言:javascript复制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服务
代码语言:javascript复制# 手动安装
apt-get install rsync
修改默认的系统运行级别
代码语言:javascript复制# 查看当前系统运行级别
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.rpmrpm -i pkg.rpm | dpkg -i pkg.debpkg --install pkg.deb |
删除软件包 | rpm -e package | apt-get remove package |
软件包升级检查/测试 | yum check-update | apt-get -s upgradeapt-get -s dist-upgrade |
升级软件包 | yum updaterpm -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 installedrpm -qa | dpkg -ldpkg --list |
获取某个已安装软件包的信息 | yum info packagerpm -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/namedpkg --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配置:
代码语言:javascript复制# 如果遇到无法拉取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,所以需要什么就在本地仓库中下载什么,然后重新生成索引文件即可。另外也可以直接从外网的软件源同步软件包,参考科大源同步方法与注意事项