diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e61414248ae267bce4eb75a66529b6a6f7472f02..4201a4d69c5ab9068c3a1cfdca455cee1b4f465d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,9 @@
 stages:
   - prebuild
   - build
-  - pack
+  - pack-centos
+  - pack-ubuntu
+  - pack-debian
   - sign
   - deploy
 
@@ -84,7 +86,7 @@ build:
       - .venv
 
 build-package-centos:
-  stage: pack
+  stage: pack-centos
   tags:
     - shell
   only:
@@ -103,10 +105,10 @@ build-package-centos:
     paths:
       - build/picodata*.rpm
 
-build-package-ubuntu-focal:
+build-package-ubuntu:
   tags:
     - shell
-  stage: pack
+  stage: pack-ubuntu
   only:
     - web
     - tags
@@ -117,10 +119,29 @@ build-package-ubuntu-focal:
   script:
     - |
       pushd tarantool-sys; export VER_TNT=$(git describe --long | sed -n 's/^\([0-9\.]*\)-\([0-9]*\)-\([a-z0-9]*\)/\1.\2/p'); popd
-      OS=ubuntu DIST=focal PRESERVE_ENVVARS=VER_TNT packpack/packpack
+      OS=ubuntu DIST=focal PRESERVE_ENVVARS=VER_TNT BUILDDIR=$PWD/build_ubuntu/ RELEASE=${DIST} packpack/packpack
   artifacts:
     paths:
-      - build/*.deb
+      - build_ubuntu/*.deb
+
+build-package-debian:
+  tags:
+    - shell
+  stage: pack-debian
+  only:
+    - web
+    - tags
+  before_script:
+    - git submodule update --init --recursive
+    - git clone https://github.com/packpack/packpack.git packpack
+    - git describe --long
+  script:
+    - |
+      pushd tarantool-sys; export VER_TNT=$(git describe --long | sed -n 's/^\([0-9\.]*\)-\([0-9]*\)-\([a-z0-9]*\)/\1.\2/p'); popd
+      OS=debian DIST=bullseye PRESERVE_ENVVARS=VER_TNT BUILDDIR=$PWD/build_debian/ RELEASE=${DIST} packpack/packpack
+  artifacts:
+    paths:
+      - build_debian/*.deb
 
 sign-rpm-packages:
   variables:
@@ -141,7 +162,7 @@ sign-rpm-packages:
     paths:
       - build/picodata*.rpm
 
-deploy-job-centos:
+deploy-job:
   stage: deploy
   tags:
     - shell
@@ -152,29 +173,28 @@ deploy-job-centos:
     - eval $(ssh-agent -s)
     - echo "$DEPLOY_PROD_SSH_KEY" | base64 -d | ssh-add -
   script:
+    # CentOS 7
     - echo "Deploying rpm-centos7-packet..."
     - scp -o stricthostkeychecking=no build/picodata*.el7.*rpm ansible@94.26.239.246:/data/nginx/www/packrepo/tarantool-picodata/el/7/x86_64/
     - ssh -o stricthostkeychecking=no ansible@94.26.239.246 "cd /data/nginx/www/packrepo/tarantool-picodata/el/7/ && createrepo --update x86_64 && gpg --no-tty --yes -u kdy@picodata.io --detach-sign --armor x86_64/repodata/repomd.xml"
-    - echo "rpm-centos7-packet successfully deployed."
-    - echo
+    -  echo "rpm-centos7-packet successfully deployed."
+    -  echo
+    # CentOS 8
     - echo "Deploying rpm-centos8-packet..."
     - scp -o stricthostkeychecking=no build/picodata*.el8.*rpm ansible@94.26.239.246:/data/nginx/www/packrepo/tarantool-picodata/el/8/x86_64/
     - ssh -o stricthostkeychecking=no ansible@94.26.239.246 "cd /data/nginx/www/packrepo/tarantool-picodata/el/8/ && createrepo --update x86_64 && gpg --no-tty --yes -u kdy@picodata.io --detach-sign --armor x86_64/repodata/repomd.xml"
     - echo "rpm-centos8-packet successfully deployed."
-
-deploy-job-ubuntu-focal:
-  stage: deploy
-  tags:
-    - shell
-  only:
-    - web
-    - tags
-  before_script:
-    - eval $(ssh-agent -s)
-    - echo "$DEPLOY_PROD_SSH_KEY" | base64 -d | ssh-add -
-  script:
-    - echo "Deploying deb-packet..."
-    - ssh -o stricthostkeychecking=no ansible@94.26.239.246 "mkdir -p ~/.deb"
-    - scp -o stricthostkeychecking=no build/picodata*deb ansible@94.26.239.246:.deb/
-    - ssh -o stricthostkeychecking=no ansible@94.26.239.246 "reprepro -b /data/nginx/www/packrepo/tarantool-picodata/ubuntu/ -C main includedeb focal ~/.deb/picodata*deb; rm ~/.deb/picodata*deb"
-    - echo "deb-packet successfully deployed."
+    - echo
+    # Ubuntu
+    - echo "Deploying ubuntu deb-packets..."
+    - ssh -o stricthostkeychecking=no ansible@94.26.239.246 "mkdir -p ~/.deb/ubuntu"
+    - scp -o stricthostkeychecking=no build_ubuntu/picodata*deb ansible@94.26.239.246:.deb/ubuntu/
+    - ssh -o stricthostkeychecking=no ansible@94.26.239.246 "reprepro -b /data/nginx/www/packrepo/tarantool-picodata/ubuntu/ -C main includedeb focal ~/.deb/ubuntu/picodata*focal*deb; rm ~/.deb/ubuntu/picodata*focal*deb"
+    - echo "ubuntu deb-packets successfully deployed."
+    - echo
+    # Debian
+    - echo "Deploying debian packets..."
+    - ssh -o stricthostkeychecking=no ansible@94.26.239.246 "mkdir -p ~/.deb/debian"
+    - scp -o stricthostkeychecking=no build_debian/picodata*deb ansible@94.26.239.246:.deb/debian/
+    - ssh -o stricthostkeychecking=no ansible@94.26.239.246 "reprepro -b /data/nginx/www/packrepo/tarantool-picodata/debian/ -C main includedeb bullseye ~/.deb/debian/picodata*bullseye*deb; rm ~/.deb/debian/picodata*bullseye*deb"
+    - echo "debian packets successfully deployed."
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 40e8e452482bf8da7cd9bf30e74e29f9a35ff5d4..204fe7e0c2639fbb5ac8f9d0219c84c18f467348 100644
--- a/Makefile
+++ b/Makefile
@@ -50,6 +50,6 @@ fat:
 	@$(MAKE) test --no-print-directory
 
 clean:
-	cargo clean
+	cargo clean || true
 	cd tarantool-sys && rm -f patches-applied && git reset --hard ; cd -
 	find . -type d -name __pycache__ | xargs -n 500 rm -rf