2020년 1월 6일 월요일

칼리 + 윈도우 10 듀얼 부팅 설치시 문제

칼리 설치하다보면,

debootstrap 오류라고 뜨는데 

이유는 usb가 마운트가 안되서라고 한다.

그렇다고한다 ㅎㄹ



This question is old but I just came across a working fix for this.

As it turns out, the issue was caused due to the USB drive being unmounted during the LVM setup process. It might've been a bad USB connector or USB drive.

There is a very easy fix for which you don't even have to reboot or re-do any of the setup again.

  1. Press esc to enter the menu of the installer.
  2. Select Enter a shell (or command prompt)
  3. Run fdisk -l to find out the name and partition of your USB install drive
  4. Run mount /dev/sdc1 /cdrom (replace sdc1 with your USB drive)
  5. Run exit, then go back to Install the base system from the menu

It will continue to install as normal. All credits and thanks go to this guy

2017년 12월 7일 목요일

configure, make , make install

1. configure
configure는 소스파일에 대한 환경설정을 해주는 명령어다.(configure뒤에 옵션을 넣음서버환경에 맞쳐 makefile을 생성해주는 과정이다.
소스를 사용할 컴퓨터와 사용자의 환경에 맞게 내 컴퓨터는 어떤 기종이고 컴파일에 필요한 시스템 파일들은 어디에 위치해 있으며어떤곳에 설치를 하겠다고 지정을 하는 것이다.
)
# ./configure --prefix = /usr/local/mysql 하게 되면 어떤 파일을 /usr/local/mysql 이라는 곳에 설치 하겠다는 뜻.


2. make
make는 소스를 컴파일 하는 것이다컴파일이란 것은 소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정을 말한다. make 과정이 끝나고 나면 설치파일(Setup 파일 같은 것)이 생성된 상태라고 볼 수 있다.
여기서 중요한 것은 make에게 어떤 프로그램을 컴파일하고 링크해야 하는지 그 방법을 설명한 것이 makefile이다.
mafefile이란 것은 소스파일의 의존성이라던가 필요한 명령등 신경써야할 부분이 많게된다매번 각 소스파일을 따로 컴파일 하는 것도 매우 힘든일이다프로그램의 빌드과정을 표준 문법으로 기술한 파일을 makefile이라고 부른다.


3. make install
make install은 make를 통해 만들어진 설치파일(setup)을 설치를 하는 과정이다한마디로 build된 프로그램을 실행 할 수 있게 파일들을 알맞은 위치에다가 복사를 한다.

make dep 이란 것은 의존성 검사라고 하는 것인데 커널 컴파일을 하기 전에 이것들의 소스들에 문제가 있는지 검사하는 것이다. ( 설치에 필요한 것들이 제대로 있나 확인하는 것)



--prefex={ /설/치하고자하는경로} 하면 설치하고자하는 경로에 인스톨해준다.

출처: http://itdexter.tistory.com/325 [IT_Dexter]

2017년 12월 6일 수요일

2017년 12월 5일 화요일

docker build시 오류

docker build할때

composer install cloning같은것 퍼미션 오류나면 말그대로 권한 안받은것.

build한 docker 실행시 맥에서만 자주 일어나는 오류는

ocker: Error response from daemon: driver failed programming external connectivity on endpoint  {$name}: Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)

80포트가 사용중이라서 그럽니다.

일단 아파치 사용중일수 있음. 그럼 아파치 정지해야죠

아파치 중지
# apachectl stop
# httpd stop

이것해주고. nginx 사용중이면, nginx또한 프로세스 킬해줘야함. 


sudo lsof -i :80
-
80포트 물려있는 응용프로그램 종료

sudo kill -9 pid

container재실행전에 우선


docker stop {$name}

docker rm {$name}

해주고

docker run 해보면된다.



아파치 설정방법

아파치 시작
# apachectl start
# httpd start


아파치 중지
# apachectl stop
# httpd stop
아파치 리스타트
# apachectl restart
# httpd restart


위와 같이 했는데 안될경우

아파치 시작
# /etc/rc.d/init.d/httpd start

아파치 중지
# /etc/rc.d/init.d/httpd stop

아파치 리스타트
# /etc/rc.d/init.d/httpd restart


다 아시겠지만 덧붙여서 apachectl 또는 httpd 의 위치는 말그대로 which 명령어를 씁니다.

# which apachectl

결과물 
/usr/local/apache/bin/apachectl 


httpd.conf 파일의 문법검사는
# apachectl configtest

이상 없을때의 결과물
Syntax OK

2017년 12월 1일 금요일

bitbucket 소스 올리기


http://bitbucket.org 접속

계정생성후에 설정들어가서 ssh등록

* ssh key 생성방법 
- ssh-keygen
- pbcopy < ~/.ssh/id_rsa.pub

repository말고 계정 메인들어가서 아바타 왼쪽 클릭하면 설정나옴 거기 메뉴에서 ssh키등록 누르고
라벨 대충쓰고 붙어넣기하면됨

repository 생성 

그럼 화면에 

I'm starting from scratch : 새프로젝트
I have an existing project to push up : 기존 프로젝트 연결


새프로젝트면 폴더 만들기  mkdir 만들고 싶은 경로 에 폴더만들기

기존 프로젝트 있으면 cd  프로 젝트 경로로 들어감

git init

git remote  add origin [ http:// repository 주소 ]

push -u origin master

git remote add [레파지토리명] [REMOTE URL]

git push [레파지토리명] [브런치]


* src refspec master does not match any 에러날 경우


touch initial
git add initial
git commit -m "initial commit"

이렇게치면. 








이런다 그럼 이메일이랑 이름남기고 다시
git commit -m "initial commit"
git push -u origin master

이렇게 하면 올라간다.
.
어떤 파일들은 백업이나 버전관리를 안하고 싶을때가 있다. 예를 들어 컴파일할때 생기는 중간파일등이다. .gitignore파일에 git에서 관리하지 않을 파일들을 넣어두면 된다. 직접만들어도 되고 구글링해도 나온다. 

add의미: git에 add한다는 뜻이다 add하지 안흔 파일은 git 이 관리하지않는다.
commit:반드시 메세지가 있어야한다. 
Local에서 작업한것을 Local Repository에 올릴때 사용

push:remote Repository에 소스를 올릴때 사용. 


2017년 11월 29일 수요일

php 7.0 내장서버


영어로 강의를 들으니 영어로 말하고 싶어지네 하여튼.

php 5점대 부터 연습용이나 테스트용으로 내장서버를 제공한다.
이것은 아파치랑 다르게 단순히 php정도만 처리가능한 아주 작은 서버라는점

db도 연동가능한데 나는 맥이라서 mariadb 를 설치했는데 어차피 mysql상위버전이라 상관은 없고.

PDO 라는 라이브러리가 필요한가보다
-php database objec..

이렇게 되고. 이게 7.0 버전부터는 아예 내장되서 나오는듯
5.0대에는 php-mysql이라는 확장프로그램을 따로 설치해 주어야 하고.


내장서버 실행은 php -S localhost:포트번호 하면 실행이된다.
이때 로컬에서 테스트할때는 상관없는데 외부에서 테스트할때는 config들어가서 0.0.0.0으로 설정해주라는데

외부에서 접속하고싶음 아파치를쓸거니까 관심껏다.


homebrew로 mariadb설치 폴더  : usr/local/celler(homwbrew로 설치하면 전부 저폴더에되는듯)

XAMPP설치했는데 이게 패키지라 한번에 mariadb+php+perl+apache2까지 설치되었다.
그러나 설치과정에서 mariadb는 있다고 패스했다.

경로설정 고민했지만 그건 스튜핏

어차피 DB 는 로컬:포트로 찾아들어가서 아이디/비번때리고 접속하면되니까.

어디 들어있던 뭔상관.



2017년 11월 27일 월요일

Json의 올바른이해

출처: * 출처 : http://blog.naver.com/musecje?Redirect=Log&logNo=10126963299


- JSON이란 무엇인가?

  1. 어떻게 읽으면 되나?

    제이선이라고 읽으면 되겠다.


  2. 무엇을 줄인 말이냐?

    JavaScript Object Notation이라는 이름에서 알 수 있듯이 자바스크립트를 위한 것이고 객체 형식으로 자료를 표현하는 것이다.

    
  3. 이거 프로그래밍 언어냐?

    사방팔방에 JSON이라는게 등장하고 각종 사용방법이 나오고 어려워 보이지만 JSON 자체는 정말 별거 아니다. JSON 그자체 는 단순히 데이터 포맷일 뿐이다. 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법일 뿐이다.
    간단한 데이터를 xml보다 좀 더 간단하게 표현하기 위해 만든 것이다. XML보다 기능이 적기 때문에 파싱도 빠르고 간단하기 때문에 클라이언트 사이드에서, 특히 모 바일에서 더욱 유용하겠다. 사실 서버 입장에서도 더 유용하기 때문에 많은 서비스들이 XML보다는 JSON을 권장한다.

    다시 말하지만 이건 프로그래밍 언어가 아니다.


  4. 이거 공식 사이트 없냐?

    네이버에서 JSON으로 검색하면 시덥잖은 네이버 자체 컨텐츠들(블로그, 카페, 지식인)만 뜨는데 JSON 공식 사이트는 멀쩡히 있고, 한국어도 지원된다.
      http://json.org/json-ko.html
    여기 들어가면 좀 당황스러울 수도 있다. 뭔 놈의 공식사이트가 내용이 진짜 간단하고 별 거 없기 때문이다.
    위키피디아를 보면 더 잘 설명이 되어 있다.
      http://ko.wikipedia.org/wiki/JSON

  5. 이거 왜 쓰냐?

    단순히 데이터를 받아서 객체나 변수로 할당해서 사용하기 위한 것이다.


  6. AJAX와는 다른가?

    AJAX와는 별개의 개념이지만 AJAX가 없다면 JSON이라는 개념은 필요 없을 것이다. AJAX를 사용해 데이터를 주고 받을 때 그 데이터 포맷으로 JSON을 사용하는 것이다.


  7. 이거 쓰려면 따로 라이브러리 같은 걸 써야 하냐?

    JSON 자 체는 이미 자바스크립트 표준으로 채택되어 자바스크립트에서 기본적으로 지원하고 있기 때문에 별도의 라이브러리가 필요하거나 하지는 않 다. 그냥 eval()이라는 함수 하나로 해결되는 게 JSON이다. 하지만 JSON의 한계로 인해 라이브러리를 따로 사용하는 경우가 많다.그리고 자바스크립트 이외의 환경에서도 JSON을 간단히 사용 하기 위한 라이브러리들이 존재한다. JSON 공식 사이트 내용의 대부분이 바로 그것이다.


  8. JSON 단점이나 문제점은 뭐냐?

    AJAX 는 단순히 데이터만이 아니라 javascript 그 자체도 전달할 수 있다. 무슨 말이냐면 json데이터라고 해서 받았는데 그게 단 순 데이터가 아니라 자바스크립트가 될 수도 있고, 그게 실행 될 수 있다는 것이다. 데이터인 줄 알고 받았는데 악성 스크립트더 라 뭐 그럴 수 있다는 것이다.
    JSON 관련 라이브러리를 따로 사용하는 이유가 이것이다. 받은 내용에서 순수하게 데이터만 추출하기 위한 라이브러리이다.


  9. JSON으로 아무 데이터나 불러갈 수 있냐?

    JSON의 한계는 JSON으로 가져올 수 있는 데이터는 해당 자바스크립트가 로드된 서버의 데이터에 한정된다는 것이다.
    예를 들어서 http://kwz.kr/json.js에서 불러올 수 있는 데이터는 kwz.kr 서버에 존재하는 것만 가능하다는 것이다. 구글 데이터를 불러온다거나 네이버 데이터를 불러온다거나 할 수 없다.
    JSON은 단순히 데이터 포맷일 뿐이고 그 데이터를 불러오기 위해선 XMLHttpRequest()라는 자바스크립트 함수를 사용해야 하는데 이 함수가 동일 서버에 대한 것만 지원하기 때문이다.


  10. 어? 다른 서버의 데이터도 가져가서 보여주던데??

    궁하면 통한다고 방법이야 만들면 나오는 거다. 그래서 나온 게 일종의 프락시 역할을 하는 서버쪽 스크립트 파일과 JSONP이다.


  11. JSONP는 뭐냐????

    JSON with Padding을 줄인 말이다. 다른 서버의 데이터를 가져오기 위한 방법이다.
    이건 해당 서버에서 JSONP의 방식을 지원해 줘야지만 가능하다. 이것이 불가능하면 역시 프락시를 써야 한다.