É 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
.