现在我经常看到sources.list包含以下行的文件(包括我自己的):
deb http://security.debian.org/ testing/updates main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb http://http.debian.net/debian wheezy-updates main
Run Code Online (Sandbox Code Playgroud)
我理解组件 ( main,contrib和non-free)的含义。我还部分地理解的分布(的含义wheezy,testing,stable等等),并且所述通路的。这一切都在wiki 中有详细记录。
/updates或-updates是什么意思?-还是/我自己写?我已经从源代码创建了一个 zsh 5.0.7 包,现在我可以成功安装它,但是当我尝试删除它时,我得到了这个:
$ sudo dpkg -i zsh_5.0.7_amd64.deb
Selecting previously unselected package zsh.
(Reading database ... 177638 files and directories currently installed.)
Preparing to unpack zsh_5.0.7_amd64.deb ...
Unpacking zsh (5.0.7) ...
Setting up zsh (5.0.7) ...
Processing triggers for man-db (2.7.0.2-2) ...
Reading package lists...
Building dependency tree...
$ sudo apt-get purge zsh
Reading state information...
The following packages will be REMOVED:
zsh*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 6473 …Run Code Online (Sandbox Code Playgroud) 自定义操作是什么意思?这里有些例子。
sudo service apache2 stop-htcacheclean
sudo service apache2 graceful-stop
sudo service apache2 start-htcacheclean
sudo service apparmor recache
Run Code Online (Sandbox Code Playgroud)
在将 sysvinit 脚本移植到 systemd 服务时如何重新实现这些?
systemd 的问题是,不能有条件地使用区分守护进程参数?
以及如何在遵守 Debian 政策的同时做到这一点?
或者您是否知道已经支持此类自定义/遗留操作的任何示例 Debian systemd 服务?
在 Debian >= 8 中,我们现在apt还有apt-get. 与apt相比如何apt-get,为什么开发人员决定创建一个新程序?
引用自Debian 管理员手册:
APT 是一个庞大的项目,其原始计划包括图形界面。它基于一个包含核心应用程序的库,而 apt-get 是第一个前端——基于命令行——是在项目中开发的。apt 是 APT 提供的第二个基于命令行的前端,它克服了 apt-get 的一些设计错误。
他们在谈论什么设计错误?
我需要构建一个依赖于特定版本的第三方库的项目:
? cat debian/control
Source: libhole-cpp
Priority: optional
Maintainer: Vitaly Isaev <isaev@embarce.ro>
Build-Depends: debhelper (>= 9), cmake,
flatbuffers (= 1.2.0-1),
libboost-dev,
libboost-system-dev,
catch
Standards-Version: 3.9.5
Run Code Online (Sandbox Code Playgroud)
但是,flatbuffers我们的 repo 中有几个包,包括较新的包:
? apt-cache policy flatbuffers
flatbuffers:
Installed: (none)
Candidate: 1.4.0-17
Version table:
1.4.0-17 500
500 http://repo12.mailbuild-2.embarce.ro xenial/local amd64 Packages
1.2.0-1 500
500 http://repo12.mailbuild-2.embarce.ro xenial/local amd64 Packages
Run Code Online (Sandbox Code Playgroud)
在这种情况下mk-build-deps拒绝安装所需版本的软件包:
? sudo mk-build-deps --install debian/control
dh_testdir
dh_testroot
dh_prep
dh_testdir
dh_testroot
dh_install
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package …Run Code Online (Sandbox Code Playgroud) 假设我使用dpkg以下方法安装软件包:
sudo dpkg -i package-name.deb
Run Code Online (Sandbox Code Playgroud)
然后没有运行包二进制文件,我只是将其删除:
sudo dpkg -r package-name
Run Code Online (Sandbox Code Playgroud)
在这个过程中会发生什么有害的事情吗?例如,.deb文件中的任何恶意配置脚本?可能发生的其他可能的威胁是什么?
几天前,我下载了一个没有描述性名称的 .deb 文件,我想在执行之前知道它是哪个版本dpkg -i。
我不知道存储库中是否也包含相同的包,因此我希望从实际文件中提取此信息,而不是查询存储库的数据库。
我知道如何在基于 Red Hat 的系统上执行此操作。
yum –disablerepo=* --enablerepo=epel update
Run Code Online (Sandbox Code Playgroud)
上述命令将暂时禁用所有 repos 并启用 epel 并仅更新 epel 包。
yum update–disablerepo=remi-safe,updates
Run Code Online (Sandbox Code Playgroud)
这还将在更新所有其他启用存储库时禁用两个存储库。
例如,在 ubuntu 上相当于什么?
我知道我们可以在 /etc/apt/sources.list.d
但这将永久禁用回购,对吗?
例如,有没有一种方法可以apt-get update在暂时禁用一个 repo 的同时运行?
dpkg-buildpackage 和 debuild 有什么区别?用什么来构建 deb 包更好?
我想制作自己的 debian 软件包,并将其安装在/opt/A/B/C.
当覆盖dh_auto_install文档显示您可以使用 params--destdir=和-- prefix=.
如果我想安装我的 debian 内容,/opt/A/B/C我可以通过以下方式指定:
override_dh_auto_install:
dh_auto_install -- prefix=/opt/A/B/C
Run Code Online (Sandbox Code Playgroud)
或者
override_dh_auto_install:
dh_auto_install --destdir=/opt/A/B/C
Run Code Online (Sandbox Code Playgroud)
注意:我计划将 deb 安装到 Ubuntu 14.04 系统上。