É possível; o nível de dificuldade dependerá de quão estrito você quer ser.
Pacotes no Ubuntu (como no Debian e todos os derivados do Debian) são totalmente descritos pelos arquivos no diretório debian no pacote fonte correspondente. Para reconstruir um pacote a partir do código-fonte, execute
sudo apt-get build-dep <package>
apt-get -b source <package>
(substituindo <package> pelo nome do pacote que você deseja reconstruir). Você encontrará as opções de compilação em debian/rules , com base nos padrões fornecidos por debhelper e dpkg-buildflags (portanto, debian/rules pode não conter muita coisa).
Se você quiser reconstruir a partir do zero, começando com um sistema mínimo e trabalhando sem qualquer instalação de um pacote binário, as coisas ficam mais complexas. Veja Como atualizar todos os pacotes Debian do código-fonte? para o básico (e razões pelas quais você provavelmente não quer para fazer isso).
Para entender o multiarch, não acho que seja necessário recriar o Ubuntu. Comece lendo a documentação multiarch ; então, se precisar de mais, você pode olhar para os patches que implementam o multiarch no GCC (todos eles têm "multiarch" em seu nome), no suporte para multiarch em debhelper , < href="https://salsa.debian.org/debian/debhelper/blob/master/lib/Debian/Debhelper/Buildsystem/autoconf.pm#L46"> por exemplo aqui para autoconf e na configuração ld.so em glibc .