Ubuntu 下安装 pip
问题 $ sudo -H python get-pip.py --prefix /usr DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
2019-09-17   schedule 2 min 12 s  
libc free
glibc # define MADV_DONTNEED 4 /* Don't need these pages. */ # define MADV_FREE 8 /* Free pages only if memory pressure. */ malloc_trim __malloc_trim mtrim __madvise(..., MADV_DONTNEED) tcmalloc #include <gperftools/malloc_extension.h> MallocExtension::instance()->ReleaseFreeMemory(); TCMallocImplementation::ReleaseToSystem PageHeap::ReleaseAtLeastNPages PageHeap::ReleaseSpan PageHeap::DecommitSpan TCMalloc_SystemRelease madvise(..., MADV_FREE) jemalloc export MALLOC_CONF="background_thread:true" mimalloc static mi_option_desc_t options[_mi_option_last] = { { 0, UNINIT, "page_reset" }, }; mi_collect mi_heap_collect mi_heap_collect_ex mi_heap_page_collect _mi_page_free _mi_segment_page_free
2019-09-14   schedule 51 s  
非安装包形式安装使用 docker
理想情况下,我们在一个物理节点只会安装一个软件包,但是很多时候,我们提供的服务都需要与其它组件共存,我们不能假设客户机器
2019-09-12   schedule 3 min 52 s  
在 Alpine 中构建 Ceph
最近在做 Alpine 中构建 Ceph 的需求,这里简单进行一下相关的记录。 首先创建容器,并指定相关的代理: $ docker pull alpine $ docker run -e http_proxy -e https_proxy -e no_proxy -it alpine 安装
2019-09-09   schedule 2 min 58 s  
ELF headers
binutils 分析 ELF 文件的工具主要有如下几个: $ dpkg -L binutils /usr/bin/nm /usr/bin/objdump /usr/bin/readelf 实际上是它们都是指向 binutils-x86-64-linux-gnu 中文件的符号链接: $ dpkg -L binutils-x86-64-linux-gnu /usr/bin/x86_64-linux-gnu-nm /usr/bin/x86_64-linux-gnu-objdump /usr/bin/x86_64-linux-gnu-readelf $ sudo apt install pax-utils $ dpkg -L pax-utils
2019-09-08   schedule 13 min 29 s  
Alpine 基础
Alpine 是一个与 OpenWrt 类似的以 Musl + Busybox 为基础的精简 Linux 发行版,其包构建与管理结合了 Debian/Ubuntu apt、RHEL/CentOS yum 与 FreeBSD ports 等多个系统的
2019-09-07   schedule 6 min 14 s  
docker 镜像制作
基于已有的容器制作镜像: ~$ docker commit 1a297846df5b runsisi:hust sha256:2c7b5d9d87c755179a003a90aecbd94539151921efbf9af6846cc701677fee9f ~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runsisi hust 2c7b5d9d87c7 4 seconds ago 201 MB ubuntu 14.04 f17b6a61de28 2 weeks ago 188 MB ubuntu trusty-20180420 8cef1fa16c77 7 months ago 223 MB 然后基于制作的新镜
2019-09-07   schedule 6 min 53 s  
docker 容量统计
镜像大小 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE foonathan/micro_cpp_gcc latest a7f7b545ecc9 4 days ago 205MB centos latest 67fa590cfc1c 2 weeks ago 202MB alpine latest 961769676411 2 weeks ago 5.58MB ubuntu 18.04 a2a15febcdf3 3 weeks ago 64.2MB ubuntu latest a2a15febcdf3 3 weeks ago 64.2MB ubuntu 16.04 5e13f8dd4c1a 6 weeks ago 120MB ubuntu 14.04 2c5e00d77a67 3 months
2019-09-07   schedule 1 min 51 s  
Brook 搭建
Brook 是与 Shadowsocks 类似的一个工具软件(功能更为强大),用 Go 语言编写,因此具有非常好的跨平台支持,搭建相关的服务也非常简单,这里只是
2019-09-04   schedule 1 min 3 s  
Python 字节码
Python 源代码的执行流程大概如下图所示: 源代码被转换(编译)成字节码(bytecode),然后在 Python 解释器上下文对字节码进行解释
2019-09-02   schedule 7 min 52 s