Try the following in the tezos folder:
Update your packages:
sudo apt-get update
sudo apt-get dist-upgrade
Make sure to have the right version of the code and clean everything:
git fetch origin
git reset --hard origin/mainnet
git clean -dxf
Update opam packages:
Build everything again:
eval $(opam env)
The goal is to narrow down the as much as possible what can be upgraded to the parts which require agreement between all the participants. This is referred to as the "economic protocol". Fundamentally, the economic protocol decides which blocks are valid and which aren't, and provides a scoring function that determines the canonical chain among several ...
The general answer to the first question is: "Yes, that's the purpose of Alphanet!" then the devil lives in the details.
Some constants are different (number of blocks per cycle, time between blocks, length of voting period, ...) between alphanet and mainnet so you mustn't hard wire them. Instead, you should ask them to the node (through RPC) if you need ...