In the same spirit of this blog post http://chistera.yi.org/~adeodato/blog/106_fakeapt.html , this is a simple bash function to simulate an aptitude run on a given status and packages list. We assume yes for all question so to make aptitude not interactive and we assume the flag -f in order to alway try to fix broken universe before trying to satisfy the request.
fakeaptitude() {
aptitude -s \
-o APT::Get::List-Cleanup="false" \
-o Dir::Cache=$aptroot \
-o Dir::State=$aptroot \
-o Dir::State::status=$aptroot/status \
-o Dir::Etc::SourceList=$aptroot/sources.list \
-o APT::Architecture=amd64 \
-o Aptitude::CmdLine::Fix-Broken="true" \
-o Aptitude::CmdLine::Assume-Yes="true" \
$@
}
initapt() {
list=$1
mkdir -p $aptroot/{archives,lists}/partial
cp status.$list $aptroot/status
if [ ! -f $list.packages.gz ]; then
gzip $list.packages
fi
cp $list.packages.gz $aptroot/lists/Packages.gz
cat<<EOF > $aptroot/sources.list
deb file:$aptroot/lists/ ./
EOF
fakeaptitude update
}