MariaDB 10.3.9 소스코드 컴파일 소스코드 다운로드
git clone https://github.com/MariaDB/server.git
cd server
git checkout mariadb-10.3.9

MariaDB 컴파일
cmake .

... (생략)
Could NOT find GnuTLS (Required is at least version "3.3.24")    <== 에러 발생

gnutls 3.3.24 소스코드를 다운로드 받아 설치 시도
./configure
...
Libnettle 2.7.1 was not found  <== 에러 발생

https://ftp.gnu.org/gnu/nettle/ 에서 nettle-2.7.1.tar.gz 다운로드 후 컴파일

./configure make make install


gnutls 소스 디렉토리로 다시 돌아와 ./configure 실행 (에러가 뭐이리 많이 발생할까 -_-;;;)

./configure ... Libhogweed (nettle's companion library) was not found. Note that you must compile nettle with gmp support. <== 에러 발생


hogweed는 nettle 라이브러리를 빌드할 때 같이 생성되는 라이브러리
gmp 라이브러리가 미리 설치되어 있어야 생성되는 파일이다. 
만약 로컬에 gmp 라이브러리가 없으면 skip 되어 hogweed 라이브러리는 생성되지 않는다.
그래서 위의 Libhogweed 에러가 발생한 것이다.

결론은 gmp 라이브러리를 설치하고, nettle을 다시 빌드하면 된다.
gmp-devel 라이브러리 설치 후 nettle 다시 빌드 

/usr/local/lib/ 디렉토리에 libhogweed 라이브러리 생성 확인 gnutls 소스 디렉토리로 다시 이동

./configure make make install


MariaDB 소스 디렉토리로 이동

cmake . make make install


드디어 빌드 성공



리눅스 커널 빌드에 도전해봤다.

환경은 Linux Mint 18.2 Sonya 이다.

Linux Mint는 Ubuntu에서 파생된 버전이다보니 Ubuntu에서 제공하는 커널 빌드 가이드로 진행했다.





1. 아래 3번의 명령어로 소스 코드를 바로 다운로드 받을 수 없어 다음과 같이 설정을 변경하였다.
   GUI 화면에서 [메뉴] 클릭 -> 검색창에서 [소프트웨어소스] 타이핑 ->  소스코드 저장소 활성화 체크(미러 서버도 한국으로 변경)

2. sudo apt-get update 실행

3. 현재 Mint 18.2 에서 사용하고 있는 소스 코드를 받기 위해 아래와 같이 명령어를 입력한다.(sudo 를 통해 실행하면 에러가 발생하므로 sudo는 빼고 실행하도록 한다)
  • apt-get source linux-image-$(uname -r)

4. 이전에 커널을 빌드 해본적이 없다면, 몇몇 패키지가 필요하므로 아래와 같이 입력한다.
  • sudo apt-get build-dep linux-image-$(uname -r)

5. 커널을 설정하는 방법은 추후에 확인해보기로 하고 이번에는 Skip 한다.

6. 다운로드 받은 커널 소스코드 디렉토리로 이동 후 아래와 같이 입력한다.
     
  • fakeroot debian/rules clean # quicker build: fakeroot debian/rules binary-headers binary-generic binary-perarch


7. VM 환경에서 빌드를 했고, 1시간 넘게 시간이 걸렸다. 빌드한 디렉토리의 상위 폴더로 이동하면 .deb 패키지를 볼 수 있다.
   최근 빌드에서는 linux-extra 파일도 추가적으로 생성된다. 
  • cd ..
    ls *.deb
        linux-headers-4.8.0-17_4.8.0-17.19_all.deb
        linux-headers-4.8.0-17-generic_4.8.0-17.19_amd64.deb
        linux-image-4.8.0-17-generic_4.8.0-17.19_amd64.deb
8. dpkg -I linux*<버전명>*.deb 명령어를 통해 새롭게 빌드한 커널을 설치하고, 시스템을 재시작 한다.
  • sudo dpkg -i linux*4.8.0-17.19*.deb
    sudo reboot
9. 직접 테스트 한 환경에서는 시스템 재시작 후 name -r 명령어를 통해 커널 버전이 변경된 것을 확인할 수 있었다.




[참고] https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

INSERT하는 간단한 Procedure 예제 입니다.


<테이블 스키마>

CREATE Table t1 (

c1 int,

c2 varchar(20)

);


<INSERT 프로시저>

DELIMITER $$

DROP PROCEDURE IF EXISTS INSERT_T1$$

CREATE PROCEDURE INSERT_T1()

BEGIN

  DECLARE i INT DEFAULT 1;

    WHILE i <= 100000 DO

      INSERT INTO t1 VALUES (i, 'string_value');

      SET i = i + 1;

    END WHILE;

END $$

DELIMITER ;

+ Recent posts