Skip to main content
Glama

Voice Mode

by mbailey
npm-global-no-sudo.md•3 kB
# Installing npm Global Packages Without sudo on macOS/Linux This guide explains how to configure npm to install global packages without requiring root permissions on macOS and Linux. ## Why This Matters By default, npm installs global packages to `/usr/local`, which requires sudo access. This can cause: - Permission errors - Security concerns from running npm with elevated privileges - Conflicts with system-installed Node.js ## Quick Setup We provide an automated setup script that handles all the configuration for you: **Option 1: Download and run directly** ```bash curl -fsSL https://raw.githubusercontent.com/mbailey/voicemode/master/scripts/setup-npm-global.sh | bash ``` **Option 2: Run from cloned repository** ```bash ./scripts/setup-npm-global.sh ``` The script will: - Create the `~/.npm-global` directory - Configure npm to use this directory - Add the directory to your PATH - Update your shell configuration file ## Manual Setup If you prefer to configure manually, follow these steps: ### 1. Create npm Global Directory ```bash mkdir -p ~/.npm-global ``` ### 2. Configure npm to Use This Directory ```bash npm config set prefix '~/.npm-global' ``` ### 3. Add npm Global bin to Your PATH Add this line to your shell configuration file (`~/.zshrc` for Zsh or `~/.bash_profile` for Bash): ```bash export PATH="$HOME/.npm-global/bin:$PATH" ``` ### 4. Reload Your Shell Configuration ```bash # For Zsh source ~/.zshrc # For Bash source ~/.bash_profile ``` ## Verification Test by installing a package globally without sudo: ```bash # This should work without sudo npm install -g @google/gemini-cli ``` ## Alternative: Using Node Version Managers For even better Node.js management, consider using: - **[nvm](https://github.com/nvm-sh/nvm)** - Node Version Manager - **[fnm](https://github.com/Schniz/fnm)** - Fast Node Manager - **[volta](https://volta.sh/)** - JavaScript Tool Manager These tools install Node.js and npm in your home directory by default, avoiding permission issues entirely. ### Example with nvm: ```bash # Install nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # Install latest Node.js nvm install node # Global packages now install to ~/.nvm without sudo npm install -g @google/gemini-cli ``` ## Troubleshooting ### Permission Errors Still Occur Check that your PATH is correctly set: ```bash echo $PATH which npm ``` ### Previously Installed Packages Not Found You may need to reinstall global packages after changing the prefix: ```bash npm list -g --depth=0 ``` ### Reset to Default Settings To revert these changes: ```bash npm config delete prefix # Remove the PATH export from your shell config file ``` ## See Also - [npm Documentation: Fixing npm permissions](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) - [Node.js Download Page](https://nodejs.org/en/download/) - [Homebrew Node Formula](https://formulae.brew.sh/formula/node)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mbailey/voicemode'

If you have feedback or need assistance with the MCP directory API, please join our Discord server