Giter Site home page Giter Site logo

donnemartin / dev-setup Goto Github PK

View Code? Open in Web Editor NEW
6.1K 6.1K 1.1K 424 KB

macOS development environment setup: Easy-to-understand instructions with automated setup scripts for developer tools like Vim, Sublime Text, Bash, iTerm, Python data analysis, Spark, Hadoop MapReduce, AWS, Heroku, JavaScript web development, Android development, common data stores, and dev-based OS X defaults.

License: Other

Shell 33.98% JavaScript 1.95% Python 42.95% CSS 0.12% GDB 0.01% Vim Script 20.99%
android-development aws bash cli cloud elasticsearch git iterm2 linux mac macos mongodb mysql nodejs postgresql python redis spark sublime-text vim

dev-setup's People

Contributors

allanice001 avatar bmkmanoj avatar donnemartin avatar dportabella avatar errrrk avatar estyxx avatar hronik1 avatar jlmoody avatar odysseus0 avatar pahaz avatar royassaly avatar seanknox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dev-setup's Issues

.dots bootstrap should use the local directory instead of downloading from github

.dots contains the following:

        if [ $ARG == "bootstrap" ] || [ $ARG == "all" ]; then
            cd ~ && curl -#L https://github.com/donnemartin/dev-setup/tarball/master | tar -xzv --strip-components 1 --exclude={README.md,LICENSE}

I use this scenario:

$ git clone https://github.com/donnemartin/dev-setup.git
$ cd dev-setup
$ git checkout david  
# personalise my dev-setup, remove some stuff from brew.sh, add something else...
$ git commit -a -m "my personalized dev-setup"
$ ./.dots all

here I would expect to execute my personalized setup, as I am executing the setup from my ~/dev-setup directory. Instead, .dots downloads the scripts again from your github repo.
this does not make sense to me. If that's the behaviour you want, then you should provide a .dots file separately from this repo. If I execute the script from my ~/dev-setup directory, I expect all the installation scripts in that directory to be used, not only the .dots script.

also, the script copies all .dot files to the home directory. that makes sense. but it also copies all the installation scripts, and executes them from there. i think it would be better to execute the scripts from the dev-setup directory. once the installation is done, I want to have all .dot files in the home directory, but not the installation scripts. Also, the main script could be named differently, for instance setup.sh instead of .dots (I guess that at the beginning .dots was only copying .dot files and later you also installed programs, but now the script name is misleading).

did you plan to make such changes or it is not in line with your idea?
do you want me to make a pull request on this?

system unusable in case of not approved xcode license

I like your scripts. dots is very easy to use and for me it provides an efficient way to setup my machine. Thank you for it!

However my first experience was not as smooth as it could be. I installed xcode to prepare for this. After that I ran dots and it complained a lot that it could not find brew. Unfortunately it did not stop and left my machine in a unusable state. Only when I attempted to manually install homebrew it told me to approve the xcode license. This is probably a simple improvement but could save a lot of pain for new mac users like me.

Mark

softwareupdate: invalid option -- v

Hi.
In osxprep.sh#L13,

sudo softwareupdate -iva

But I found,

$ sudo softwareupdate -v
softwareupdate: invalid option -- v
$ defaults read loginwindow SystemVersionStampAsString
10.12.6

Same error occured on 10.13.3.

We might need detect osx version and switch options, or simply delete -v.

I don't have other osx so I cannot confirm from which version this error occurs.

Using sudo to install brew apps?

Hi, I was just reading the bash scripts and I noticed you use brew to install several apps while you keep alive the sudo session.

Is this ok?

Since I remember brew recommends do not use sudo to install apps, how you handle this?

Add SAWS: A Supercharged AWS CLI to the AWS section

Link: https://github.com/donnemartin/saws

Build Status Documentation Status Dependency Status Codecov

PyPI version PyPI License

SAWS

Motivation

AWS CLI

Although the AWS CLI is a great resource to manage your AWS-powered services, it's tough to remember usage of:

  • 50+ top-level commands
  • 1400+ subcommands
  • Countless command-specific options
  • Resources such as instance tags and buckets

SAWS: A Supercharged AWS CLI

SAWS aims to supercharge the AWS CLI with features focusing on:

  • Improving ease-of-use
  • Increasing productivity

Under the hood, SAWS is powered by the AWS CLI and supports the same commands and command structure.

SAWS and AWS CLI Usage:

aws <command> <subcommand> [parameters] [options]

SAWS features:

  • Auto-completion of:
    • Commands
    • Subcommands
    • Options
  • Auto-completion of resources:
  • Customizable shortcuts
  • Fuzzy completion of resources and shortcuts
  • Syntax and output highlighting
  • Execution of shell commands
  • Command history
  • Contextual help
  • Toolbar options

SAWS is available for Mac, Linux, Unix, and Windows.

Notice: Maintainer Temporarily Unavailable

Hi Everyone,

I'll be temporarily unavailable starting April 17 and won't be able to respond to issues or pull requests. I'm hoping I'll be available in a couple of weeks, but I might not be responsive for several weeks.

Sorry for the inconvenience.

-Donne

'./.dots all' calls webdev.sh called instead of web.sh

I was just trying to install all without changing anything and got:


Setting up JavaScript web development environment.

------------------------------

./.dots: line 88: ./webdev.sh: No such file or directory

------------------------------

Setting up Android development environment.

I think it meant to call web.sh instead.

[Question] Modification / Contribution

Hi.

Let me start by saying that I really love what you've done (and are still doing) here.
I'm putting together a 'small' gitbook on Bash Scripting and I was wondering if I could use your project for demonstration purposes?
Mind that I will break it apart and most likely modify quite a few things, but it will end up doing the exact same thing, but with things I need on my dev machine added and those I don't need eliminated.

If you agree to this, how should I proceed? Fork the project and create my own repo and keep you posted on updates and make a pull request for the changes you like? Or any other suggestion on making a 'collaboration' as smooth as possible?

Thanks a lot in advance!

Add Sublime Text 3 Theme Install

Manual steps:

  • Command Palette
  • Package Control: Install Package
  • Install PackageResourceViewer
  • PackageResourceViewer Open Resource
  • Select theme

Comment color (Monokai)

Reference

<dict>
    <key>name</key>
    <string>Comment</string>
    <key>scope</key>
    <string>string</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#E6DB74</string>
    </dict>
</dict>

Selection highlight color

<key>selection</key>
<string>#759557</string>

Automated steps:

  • TBD

Running osx.sh left mac in an unusable state

I ran the osx.h script on a freshly installed mac, and it instantly became unresponsive. Restarting didn't help, as it never got past the login screen (filevault on). I tried again commenting out the SSD parts and the screen parts, and it happened again.

I could not debug it further than this, as I had to basically reinstall OSX again

How to add zsh and oh-my-zsh?

I need to setup 10 new Macs and I've looked at various solutions including boxen and other shell scripts. This is by far the best solution (for my purposes) that I've seen.

If I wanted to install zsh and oh-my-zsh, what would I have to do (besides installing zsh via homebrew)? Specifically, what's the best place to run the oh-my-zsh installer script?

Thanks for the great work.

Bash autocomplete does not work

When I open terminal and try to tab to autocomplete

declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
-bash: complete: -D: invalid option
complete: usage: complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-F function] [-C command] [name ...]

me at hnt in ~
$ cd De-bash: printf: `words[0]': not a valid identifier
-bash: printf: `words[1]': not a valid identifier
-bash: compopt: command not found```

Java 1.7+ Needed for brew.sh's Pour aircrack-ng

==> Pouring aircrack-ng-1.1_2.el_capitan.bottle.tar.gz
==> Caveats
Run airodump-ng-oui-update install or update the Airodump-ng OUI file.
==> Summary
๐Ÿบ /usr/local/Cellar/aircrack-ng/1.1_2: 34 files, 952.8K
bfg: Java 1.7+ is required to install this formula.
You can install with Homebrew Cask:
brew install Caskroom/cask/java

You can download from:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Error: An unsatisfied requirement failed this build.

As far as I am aware none of the prior scripts in the instructions take care of installing Java, should either include this or list it as a prereq in docs.

It seems when the brew gets to the iterm2 section it will install the latest java by default as well.

sudo timeouts during installs

Hi there,

Having run dev-setup on a few machines now (thanks! loving it so far) I've noticed that installs require typing the sudo password at various points, making unattended installs impossible.

A solution we used in Boxen for this problem was to ask for the user's sudo password at the beginning (using sudo -p) and periodically call sudo -p to prevent timeout or prompt the user again. Happy to put up a PR if you're interested.

DO NOT USE THIS WITH MOJAVE

I have had about 5 of these issues plus many more within the first 5 hours of using this. now i have to reformat again and just download everything manually.

it is a shame because it is a really good idea but there are just way too many conflicts, particularly pertaining to virtualbox stuff, python, and bash.

maybe leave that out.. the custom script option was too complicated to edit so i just ran --all

pyenv over homebrew python

Given that you're using rbenv, I was wondering why you're not using pyenv? I've found it to be invaluable especially working back and forth between python 2 and 3 pretty extensively. After all, we should all be starting new projects in python 3, right?

The source code is well maintained and nearly identical to rbenv. The rbenv HEAD is even merged in periodically.

The installation is entirely identical with the exception that python-build (like ruby-build) is included in the pyenv package :)

brew install pyenv
brew install pyenv-virtualenvwrapper # not necessary, but a nicety
pyenv install -l # list python versions
pyenv install 2.7.10
pyenv install 3.5.0
pyenv global 2.7.10 3.5.0 # sets global python2 and python3

Please let me know if you'd like me to submit a PR!

P.S. Love the repository, I've been trying to maintain a similar repo: https://github.com/AlJohri/dotfiles/blob/gh-pages/Brewfile
You should consider using the brew bundle command instead of brew.sh. (its pretty new, released within the last year).

Add Awesome AWS to the AWS section.

Link: https://github.com/donnemartin/awesome-aws



# Awesome AWS [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

A curated list of awesome AWS libraries, open source repos, guides, blogs, and other resources.

Inspired by the awesome list.

The Fiery Meter of AWSome

  • Repo with 0100+ Stars: ๐Ÿ”ฅ
  • Repo with 0200+ Stars: ๐Ÿ”ฅ๐Ÿ”ฅ
  • Repo with 0500+ Stars: ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ
  • Repo with 1000+ Stars: ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ
  • Repo with 2000+ Stars: ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

Repos not on The Fiery Meter of AWSome can still be awesome, see A Note on Repo AWSomeness.

Contributing

Contributions are welcome!

This list is just getting started, please contribute to make it super awesome.

Check out the Contributing Guidelines.

Index

/usr/local/bin/virtualenvwrapper.sh: No such file or directory

Every time I open my terminal prompt, I am getting this error and all my attempt to resolve it has failed. Anyone seen this before?

-bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory
warning: could not open directory '.lldb/': Permission denied

Thanks

Fidelis

Why does bootstrap.sh copy the installation scripts to the home directory?

if I understood it corretly from README.MD, we can install like this:

$ git clone https://github.com/donnemartin/dev-setup.git && cd dev-setup
$ ./.dots bootstrap osxprep brew osx

and later when we need datastores, we run

$ cd ~/dev-setup
$ ./.dots datastores

I understand that bootstrap copies the dot files to the home directory, such as .bash_profile and .exports.
but why do you also copy the installation scripts, such as .dots and datastores to the home directory, if we are always going to execute them from ~/dev-setup/ (as they can be updated from git)?

Dead project?

This looks like this might be a dead or dying project but I find the feature very useful when it is needed. Unfortunately when you need this is only once every couple of years. However, with the premise of a community project, it needs to be up to date practically daily.

That said, it looks like within a half-day this project could be cleaned up - bug fixes closed, PRs doctored or merged/closed. I would be happy to handle this for now but perhaps transferring ownership or showing a little more TLC once a week could really help a ton of other engineers developers found starting a new job or setting up a new machine at home they just bought. Thoughts?

setup fail under macOS High Sierra

I tried 3 times and I still got error like below.
screen shot 2018-07-05 at 13 42 21

Meanwhile my terminal showed above message every time.
screen shot 2018-07-06 at 23 30 21

My system info as below:
macOS High Sierra 10.13.5

Can't locate some of my apps

This seemed to remove sublime text, chrome and spectacleapp that i'd installed prior to running .dots. It seems to remove non-default installed apps.

Setup Errors on macOS Mojave

After running the setup on a fresh MacOS Mojave installation i now get a long list of errors when opening Terminal or iTerm2

Warning: could not open directory 'Libary/Application Support/XXXXXXX :Operation not Permitted

same for many folders.
'Libary/IdentityServices'
'Libary/Messages'
'Libary/HomeKit
'Libary/Mail'
'Libary/Safari'
etc

i ran the full installation as it was a fresh install on my Mac Mini for testing purposes.

any ideas?

Please update to fix errors on macos monterey

Ive been using this for a while, way too long maybe and just got a new mac.
I can understand why its unmaintained as the author doesnt need it anymore...

There's a few issues:

  1. it borks the shell as it fails to install reqs, the default shell is different now, and the bashconfig seems to now be invalid
  2. it fails to properly install the brew deps due to the command being deprecated the way its invoked now

There's also been other issues posted here before wrt it not working on upgraded macos versions.

Would love some help finding a fork that works on new macs?

Otherwise ill take a crack at fixing them myself.
Or someone else wanna do it and make $$?
If someone beats me to it or wants to help, id like to offer $500 in usdc on ethereum as an incentive. Not really planning to set up gitcoin for this tho lol

/usr/bin/python: No module named virtualenvwrapper

When I open the terminal, it will always show the following error message:

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.
-bash: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
-bash: complete: -D: invalid option
complete: usage: complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-F function] [-C command] [name ...]
-bash: /Users/zjh/.venvburrito/bin/virtualenvwrapper.sh: No such file or directory
/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.

The post on StackOverflow doesn't help. Could you please help me solve this problem? Thanks!

Homebrew bundle

Hey,

in my fork of dev-setup i added the feature to manage brew via Homebrew Bundle. As it depends on #81 i did not open a PR to avoid showing commits that are not related to the topic.
As soon as a decision is taken in regards of #81 i would like to contribute this change back to your repo if you are interested?

Checkout omares/set-me-up#2 for a clean overview of changes.

Use Homebrew Bundle for brew installations.

Using brewfiles makes it easier for users to customize dev-setup to their needs and it declutters all shell scripts. On top i moved the duplicated brew code into an own script.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.