查看Debian 基本系统安装关键技术的源代码
←
Debian 基本系统安装关键技术
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 基本系统软件包的下载 == debian 对核心的基本系统包进行了分类,一类用Essential: yes; Priority: required 标识,一类用Priority: important 标识。 加上一些额外常用的包,可以形成两个列表: <pre> required = "base-files base-passwd bash bsdutils coreutils libacl1 libattr1 debianutils diff dpkg dselect libblkid1 e2fsprogs e2fslibs libcomerr2 libss2 libuuid1 findutils grep gzip hostname libcap1 libdb1-compat libdb3 libncurses5 libnewt0.51 libpam-modules libpam-runtime libpam0g login makedev mawk mount ncurses-base ncurses-bin passwd perl-base procps sed slang1a-utf8 initscripts sysvinit sysv-rc tar util-linux libgcc1 gcc-3.3-base libstdc++5 zlib1g libc6" </pre> <pre> base = "adduser apt apt-utils libdb4.2 base-config aptitude libsigc++-1.2-5c102 bsdmainutils console-common console-tools libconsole console-data cpio cron dhcp-client ed libgnutls11 libgcrypt11 libgpg-error0 libncursesw5 libopencdk8 libtasn1-2 fdutils gettext-base groff-base ifupdown info klogd libssl0.9.7 liblzo1 liblockfile1 libpcre3 libwrap0 logrotate man-db libgdbm3 manpages nano net-tools netbase netkit-inetd iputils-ping nvi ppp pppconfig pppoe pppoeconf libpcap0.7 sysklogd tasksel libtextwrap1 tcpd telnet wget libpopt0 modutils whiptail " </pre> 有了基本软件包的列表,就可以使用 apt 的机制来下载这些包到指定的目录。 假定我们的工作目录在$TARGET_DIR,下面建立工作目录: <pre> mkdir -p "$TARGET_DIR/var/lib/dpkg" mkdir -p "$TARGET_DIR/var/lib/apt/lists/partial" mkdir -p "$TARGET_DIR/var/cache/apt/archives/partial" : >"$TARGET_DIR/var/cache/apt/archives/lock" : >"$TARGET_DIR/var/lib/dpkg/status" : >"$TARGET_DIR/var/lib/dpkg/status" : >"$TARGET_DIR/var/lib/dpkg/lock" : >"$TARGET_DIR/var/lib/dpkg/available" : >"$TARGET_DIR/var/lib/apt/lists/lock" mkdir -p "$TARGET_DIR/etc/apt" cp /etc/apt/sources.list $TARGET_DIR/etc/apt/ </pre> 下面解析包依赖关系,使用 apt-get -d install 下载之: <pre> all_debs="$required $base" options=" -q \ -o Dir::State::status=$TARGET_DIR/var/lib/dpkg/status \ -o Dir::State=$TARGET_DIR/var/lib/apt \ -o Dir::Cache=$TARGET_DIR/var/cache/apt \ -o Dir::Etc=$TARGET_DIR/etc/apt \ -o APT::Cache::AllVersions=0 " # 更新源索引于 $TARGET_DIR/var/lib/apt/list/ 下 apt-get $options update -f>/dev/null 2>&1 # 解析依赖关系,并扩展所有基本系统软件包列表 apt-get install -s $all_debs $options expand_list=$(apt-get install -s $all_debs $options | awk '{if ($0 ~ /^Inst/) print $2}') # 下载软件包于 $TARGET_DIR/var/cache/apt/archives/ 下 for f in $expand_list;do apt-get install -d -y --force-yes $f $options done </pre> 有关这里所用的 apt-get 的高级选项,参见我的另一篇 blog 文章:《深入 Debian APT 包管理系统》 注意: 传给apt-get 的options,其中的 $TARGET_DIR 必须为绝对路径。 <br><br>
返回到
Debian 基本系统安装关键技术
。
个人工具
3.20.235.88
该IP地址的讨论
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面