# Zos install fails

**URL:** <https://forum.openzeppelin.com/t/zos-install-fails/6151>\
**Category:** SDK\
**Created:** [March 8, 2021, 10:12pm UTC](https://forum.openzeppelin.com/t/zos-install-fails/6151 "2021-03-08T22:12:50Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mpraturi](https://avatars.discourse-cdn.com/v4/letter/m/c0e974/32.png) [@mpraturi](https://forum.openzeppelin.com/u/mpraturi)\
**Post date:** [March 8, 2021, 10:12pm UTC](https://forum.openzeppelin.com/t/zos-install-fails/6151/1 "2021-03-08T22:12:50Z")

</div>

**💻 Environment**

**📝Details**

**🔢 Code to reproduce**

unable to install npm install zos fails with the error npm ERR! scrypt@6.0.3 install: `node-gyp rebuild`  
npm version 6.14.11

---

<div class="post-metadata">

**Author:** ![abcoathup](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/abcoathup/32/415_2.png) [@abcoathup](https://forum.openzeppelin.com/u/abcoathup)\
**Post date:** [March 9, 2021, 3:07am UTC](https://forum.openzeppelin.com/t/zos-install-fails/6151/2 "2021-03-09T03:07:22Z")

</div>

Hi @mpraturi,

Welcome to the community 👋

We’ve decided it’s best to focus our upgradeability efforts on the Upgrades Plugins exclusively, and have halted development on the OpenZeppelin CLI (formerly known as zos). See: [Building for interoperability: why we’re focusing on Upgrades Plugins](https://forum.openzeppelin.com/t/building-for-interoperability-why-we-re-focusing-on-upgrades-plugins/4088)

If you are creating upgradeable contracts I suggest using OpenZeppelin Upgrades Plugins for Truffle and Hardhat: [https://docs.openzeppelin.com/upgrades-plugins/1.x/](https://docs.openzeppelin.com/upgrades-plugins/1.x/)

If you are creating non-upgradeable contracts then you can use Truffle or Hardhat: See: [https://docs.openzeppelin.com/learn/developing-smart-contracts](https://docs.openzeppelin.com/learn/developing-smart-contracts)

Out of interest, why were you trying to install `zos`?

---

<div class="post-metadata">

**Author:** ![mpraturi](https://avatars.discourse-cdn.com/v4/letter/m/c0e974/32.png) [@mpraturi](https://forum.openzeppelin.com/u/mpraturi)\
**Post date:** [March 9, 2021, 5:11pm UTC](https://forum.openzeppelin.com/t/zos-install-fails/6151/3 "2021-03-09T17:11:51Z")

</div>

I was trying to install zos for upgrades of smart contracts. Now I will stop thinking of zos and proceed in the way you suggested

---

<div class="post-metadata">

**Author:** ![mpraturi](https://avatars.discourse-cdn.com/v4/letter/m/c0e974/32.png) [@mpraturi](https://forum.openzeppelin.com/u/mpraturi)\
**Post date:** [March 9, 2021, 5:39pm UTC](https://forum.openzeppelin.com/t/zos-install-fails/6151/4 "2021-03-09T17:39:29Z")

</div>

But I don’t want to use gnosis, an extra layer of complication for me. Can you send me something like [https://forum.openzeppelin.com/t/openzeppelin-upgrades-step-by-step-tutorial-for-truffle/3579](https://forum.openzeppelin.com/t/openzeppelin-upgrades-step-by-step-tutorial-for-truffle/3579) without gnosis

---

<div class="post-metadata">

**Author:** ![mpraturi](https://avatars.discourse-cdn.com/v4/letter/m/c0e974/32.png) [@mpraturi](https://forum.openzeppelin.com/u/mpraturi)\
**Post date:** [March 9, 2021, 6:07pm UTC](https://forum.openzeppelin.com/t/zos-install-fails/6151/5 "2021-03-09T18:07:28Z")

</div>

And more frustrating than anything else is, how come there are no imports in Box2.sol. The only thing I understand from that tutorial is that it cannot have a constructor, but what about initilizable?  
Also, how come I can’t employ Remix in such matters? Can’t Remix come into openzeppelin framework? Is openzeppelin only until we send up the stuff using proxy on to ropsten. After that it works on its own without imports?

Please seya link to something which does not use gnosis.

---

<div class="post-metadata">

**Author:** ![abcoathup](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/abcoathup/32/415_2.png) [@abcoathup](https://forum.openzeppelin.com/u/abcoathup)\
**Post date:** [March 10, 2021, 2:59am UTC](https://forum.openzeppelin.com/t/zos-install-fails/6151/6 "2021-03-10T02:59:46Z")

</div>

Hi @mpraturi,

> [@mpraturi](#):
>
> I don’t want to use gnosis, an extra layer of complication for me.

See the documentation for doing an upgrade using `deployProxy`

> **[Using with Truffle - OpenZeppelin Docs](https://docs.openzeppelin.com/upgrades-plugins/1.x/truffle-upgrades#migrations-usage)**

It is recommended to use a multisig for the upgrades admin as an attacker who gets hold of your upgrade admin account can change any contract in your system!:

> **[Preparing for mainnet - OpenZeppelin Docs](https://docs.openzeppelin.com/learn/preparing-for-mainnet#set-admin)**

For an example of what can happen when an upgrades account is compromised see the recent attack on PAID Network

> <https://twitter.com/paid_network/status/1368424463147003912?s=20>

> [@mpraturi](#):
>
> how come there are no imports in Box2.sol

There are no imports because it is a simple example.

For an example using an `initialize` function see the documentation: [https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#initializers](https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#initializers)

See the documentation for using with OpenZeppelin Contracts Upgradeable:

> **[Using with Upgrades - OpenZeppelin Docs](https://docs.openzeppelin.com/contracts/3.x/upgradeable)**

> [@mpraturi](#):
>
> how come I can’t employ Remix in such matters

OpenZeppelin Upgrades Plugins for Truffle and Hardhat are used to test, deploy and upgrade upgradeable contracts. The Plugins also check for upgrade safety of implementation contracts.

There isn't an Upgrades Plugin for Remix.

> [@mpraturi](#):
>
> Is openzeppelin only until we send up the stuff using proxy on to ropsten.

OpenZeppelin Upgrades Plugins are for deployment, test and upgrade. You can interact with the contract using the proxy address and the ABI of the implementation contract.
