debian源码安装(debian安装程序)
本文目录一览:
- 1、如何在Debian或Ubuntu上安装完整的Linux内核源码
- 2、求debian linux下如何安装程序(编译安装/原码安装)
- 3、debian 源码安装 bochs
- 4、如何在Debian或Ubuntu上安装完整的内核源码
- 5、debian系统安装软件有哪些常见的方式?各有什么优缺点?
- 6、如何利用源代码在Banana Pi上安装最小的Debian
如何在Debian或Ubuntu上安装完整的Linux内核源码
一般编译依赖内核的软件只需要安装 header sudo apt-get install -y linux-headers-amd64 如果需要下载完整内核源码,这只能自己看看,其它软件并不会来用这份源码。 sudo apt-get source linux-image-amd64
求debian linux下如何安装程序(编译安装/原码安装)
找到安装盘 然后apt-get install gcc 回车就可以安装gcc命令了。如果想安装驱动,比如你自己下了个网卡驱动,那么先解压进入到解压目录然后
./config
make
make install
解压的目录里面会有readme的 不懂的可以看看。
debian 源码安装 bochs
$dpkg-source -x bochs_2.4.5-1.dsc
$ cd bochs_2.4.5-1
$ fakeroot dpkg-buildpackage
编译完成后,在源代码的上级目录会生成deb扩展名的包
#dpkg -i bochs*.deb
如何在Debian或Ubuntu上安装完整的内核源码
在Debian上安装完整的内核源码
在下载内核源码之前,先安装dpkg-dev,其中包含你在Debian上生成源代码时需要的开发工具套件。不仅如此,dpkg-dev中还包含在用来解压Debian源码包并自动打补丁的工具dpgk-source。
$ sudo apt-get install dpkg-dev
然后,运行以下命令下载完整的内核源码。
$ apt-get source linux-image-$(uname -r)
伴随着完整内核源码(linux_X.X.XX.orig.tar.xz)的还有一些可用的内核补丁(linux_X.X.X+XXX.debian.tar.xz)和源码控制文件(linux_XXXX.dsc),这些都将被下载并存储到当前目录。在.dsc文件中会指出如何给内核源码打补丁。
当下载完成,以上的命令将会自动调用工具dpkg-source将下载的内核源码解压到当前的目录中,与此同时根据.dsc文件来下补丁。
最终完整的内核源码树将会以"linux-X.X.XX"的形式呈现在当前目录中。
在Ubuntu上安装完整内核源码
如果你想安装完整内核源码的话,以上在Debian上的那一套做法在Ubuntu上仍然奏效。
在Ubuntu上还有另一套方法安装完整内核源码。事实上,你可以查一下由Canonical为Ubuntu不同发行版维护的内核源码树。
$ sudo apt-get install git$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-$(lsb_release --codename | cut -f2).git
举个例子,如果你使用的是Ubuntu 14.04,以上的命令将会查看Git的"ubuntu-trusty"仓库中的代码。
一旦在你对Git仓库的查询结束后,使用以下的命令来安装用来访问生成内核源码树所需依赖的重要开发包。
debian系统安装软件有哪些常见的方式?各有什么优缺点?
从apt源安装。优点:方便快捷。有查找功能,能自动安装依赖。包有签名,能防止篡改。缺点:自己搭建apt源较为繁琐。第三方apt源需要在目标机器上配置apt源再安装。
从deb包安装。优点:比较方便。复制到目标机器,再执行dpkg -i就能安装。缺点:无法自动解决软件依赖。无法保证安装的版本适合当前操作系统版本。
从源码编译安装。优点:通用性好。可以选择需要的功能进行编译,达到功能和性能的最大化。缺点:耗时很长,无法自动安装依赖。比较消耗CPU和磁盘。
如何利用源代码在Banana Pi上安装最小的Debian
1.配置lubuntu主机,使其通过网络连接Banana Pi。
a.在lubuntu主机上,分配一个固定的IP地址到以太网接口(例如,eth0)
#为eth0定义一个静态IP
sudo vi /etc/network/interfaces
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.8.1
netmask 255.255.255.0
复制代码
# 重新启动接口
sudo ifup eth0
复制代码
b.在lubuntu主机上,设置dhcp服务器eth0接口
# 安装dhcp服务器
sudo apt-get install isc-dhcp-server
复制代码
# 定义dhcp服务器的操作接口 (eth0)
sudo vi /etc/default/isc-dhcp-server
INTERFACES=”eth0″
复制代码
# 配置一个基本的dhcp服务
sudo vi /etc/dhcp/dhcpd.conf
subnet 192.168.8.0 netmask 255.255.255.0 {
range 192.168.8.16 192.168.8.127;
# hard-wired OpenDNS name server for basic setup
option domain-name-servers 208.67.222.222;
option routers 192.168.8.1;
}
# host banana always gets a fixed IP address
host banana {
fixed-address 192.168.8.8;
}
复制代码
# 重启dhcp服务
sudo service isc-dhcp-server restart
复制代码
c.在lubuntu主机上,设置一个以太网接口到因特网之间的桥接
# 使数据包在ufw中转发
# 在/etc/ufw/sysctl.conf中 取消下面两行命令的注释:
sudo vi /etc/ufw/sysctl.conf
net.ipv4.ip_forward=1
复制代码
# 在/etc/default/ufw中把DEFAULT_FORWARD_POLICY 改为 “ACCEPT” :
sudo vi /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
复制代码
# 伪装: 在/etc/ufw/before.rules中,头注释之后,添加以下内容:
sudo vi /etc/ufw/before.rules
# NAT rules (IP Masquerading)
*nat
:POSTROUTING ACCEPT [0:0]
#Forward traffic from eth0 range 192.168.8.xxx to wlan0
-A POSTROUTING -s 192.168.8.0/24 -o wlan0 -j MASQUERADE
# 'COMMIT' the above nat table rules for processing
COMMIT
复制代码
# 重启ufw 服务:
sudo ufw disable sudo ufw enable
复制代码
2.在lubuntu主机上创建u-boot, script.bin 和banana-pi linux-kernel
a. 在lubuntu主机上安装一个交叉编译器工具链
sudo apt-get install build-essential u-boot-tools uboot-mkimage binutils-arm-linux-gnueabihf gcc-4.6-arm-linux-gnueabihf-base g++-4.6-arm-linux-gnueabihf gcc-arm-linux-gnueabihf cpp-arm-linux-gnueabihf libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev
复制代码
b. 创建u-boot (u-boot-bananapi或者u-boot-sunxi-with-spl.bin)
git clone -b bananapi
cd u-boot-bananapi
make CROSS_COMPILE=arm-linux-gnueabihf- Bananapi_config
make CROSS_COMPILE=arm-linux-gnueabihf-
cd ..
复制代码
c. 创建script.bin
git clone
git clone
cd sunxi-tools
make
复制代码
#最后修改板子的配置文件: (SKIPPED HERE)
vi sys_config/a20/Bananapi.fex
cd ..
sunxi-tools/fex2bin sunxi-boards/sys_config/a20/Bananapi.fex script.bin
复制代码
d. 在linux-bananapi/ 中创建linux kernel
git clone -b bananapi-3.4
cd linux-bananapi/
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2 sun7i_defconfig
复制代码
# 最后微调内核配置 (SKIPPED HERE)
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
复制代码
# 创建 linux-bananapi/arch/arm/boot/uImage (the '-j2' option executes make tasks on two cpus for faster processing)
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2 uImage modules
复制代码
# 在linuxbananapi/output/lib/modules/3.4.90+/中创建模块
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install
cd ..
复制代码
3. 设置可启动的SD卡
假定SD卡在/dev/mmcblk0下,有一个空白的分区表而且未挂载. 至少4GB
a. 分区并格式化SD卡
#使用下面的命令对SD卡进行分区
sudo fdisk /dev/mmcblk0
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): (enter)
Using default response p
Partition number (1-4, default 1): (enter)
Using default value 1
First sector (2048-xxxxx, default 2048): (enter)
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-xxxxx, default xxxxx): +20M
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): (enter)
Using default response p
Partition number (1-4, default 2): (enter)
Using default value 2
First sector (43008-xxxxx, default 43008): (enter)
Using default value 43008
Last sector, +sectors or +size{K,M,G} (43008-15523839, default 15523839): (enter)
Using default value xxxxx
Command (m for help): w
sudo sfdisk -R /dev/mmcblk0
sudo mkfs.ext2 /dev/mmcblk0p1
sudo mkfs.ext4 /dev/mmcblk0p2
复制代码
b. 将bootloader, boot 脚本和内核映像加到boot分区
sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1k count=1023 seek=1
sudo sfdisk -R /dev/mmcblk0
sudo dd if=u-boot-bananapi/u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8
sudo mount /dev/mmcblk0p1 /mnt
复制代码
# 创建bootloader脚本
sudo vi /mnt/boot.cmd
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait panic=10 disp.screen0_output_mode=EDID:1280x720p50 hdmi.audio=EDID:0
ext2load mmc 0 0x43000000 script.bin
ext2load mmc 0 0x48000000 uImage
bootm 0x48000000
sudo mkimage -C none -A arm -T script -d /mnt/boot.cmd /mnt/boot.scr
复制代码
# 拷贝内核映像和banana配置脚本到SD卡
sudo cp linux-bananapi/arch/arm/boot/uImage /mnt
sudo cp sunxi-boards/script.bin /mnt
sudo umount /mnt
复制代码
c.用debootstrap安装一个debian wheezy 文件系统
#在lubuntu主机上设置debootstrap
sudo mount /dev/mmcblk0p2 /mnt
sudo apt-get install qemu-user-static debootstrap binfmt-support
rootdir=/mnt
dist=wheezy
sudo debootstrap --arch=armhf --foreign $dist $rootdir
复制代码
#准备把chroot放到/mnt中
sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin/
sudo cp /etc/resolv.conf /mnt/etc/
复制代码
# 把chroot放到/mnt中,然后安装debootstrap
sudo chroot /mnt
dist=wheezy
export LANG=C
/debootstrap/debootstrap –second-stage
复制代码
# 配置apt源
cat EOT /etc/apt/sources.list
deb $dist main contrib non-free
deb-src $dist main contrib non-free
deb $dist-updates main contrib non-free
deb-src $dist-updates main contrib non-free
deb $dist/updates main contrib non-free
deb-src $dist/updates main contrib non-free
EOT
cat EOT /etc/apt/apt.conf.d/71-no-recommends
APT::Install-Recommends "0";
APT::Install-Suggests "0";
EOT
复制代码
# 更新安装包然后将语系配置为en_US.UTF-8
apt-get update
dpkg-reconfigure locales
复制代码
# 在提示信息中均选择en_US.UTF-8 export LANG=en_US.UTF-8
# 安装一个ssh服务器使之可以通过网络安全登录, 并且可以自动设置日期和时间 (可选)
apt-get install openssh-server ntpdate
复制代码
# 更改root 密码
passwd
复制代码
# 查看/etc/ssh/sshd_config中以下选项并设置为yes: (注意,第一次登录的时候, 最好设置一个用户账户并通过设置选项为no禁用root权限)
vi /etc/ssh/sshd_config
PermitRootLogin yes
复制代码
# 更改banana pi的主机名 vi /etc/hostname
banana
复制代码
# 在/etc/dhcp/dhclient.conf 中,将下列行添加上或者取消注释以使banana识别lubuntu主机上的DHCP服务
vi /etc/dhcp/dhclient.conf
send host-name = gethostname();
复制代码
# 基于eth0进行自动dhcp连接
vi /etc/network/interfaces
auto lo eth0
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
复制代码
# 确保必要的时候串行控制台重新生成
echo T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100 /etc/inittab
复制代码
#在退出chroot之前终止ssh服务然后清除rootfs
/etc/init.d/ssh stop
复制代码
退出
sudo rm /mnt/usr/bin/qemu-arm-static /mnt/etc/resolv.conf
复制代码
d. 把kernel模块拷贝到rootfs
sudo mkdir -p /mnt/lib/modules
sudo rm -rf /mnt/lib/modules/
sudo cp -r linux-bananapi/output/lib/ /mnt/
sudo umount /mnt
复制代码
4. 给BananaPi供电
a. 连接banana pi
# 将banana pi的 usb/OTG 口连接到 lubuntu 主机的USB口或者直接利用适配器供电
# 在lubuntu主机和banana pi (ssh登录)之间连接以太网网线
# 最后在banana pi和lubuntu主机(控制台) 之间连接一个 USB-TTL 串行线
# 把SD卡插入Banana Pi
b. 给banana-pi供电
# 按下电源按钮
# 等待绿色LED灯闪烁 (几秒之后)
# 等待以太网接口启动(以太网连接器下的黄色LED灯)
c. 通过ssh登录